Skip to content

CpZen is an Online Integrated Development Environment (IDE) for competitive programmers made as the Lab project for CSE 4510: Software Development Lab.

License

Notifications You must be signed in to change notification settings

Starscream-11813/CpZen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CpZen

CpZen is an Online Integrated Development Environment (IDE) for competitive programmers made as the Lab project for CSE 4510: Software Development Lab.

Build Status License Grade

Built With:

Frameworks and Dependencies:

Flask Bootstrap jQuery Jinja Beautiful Soup HightlightJS ChartJS Codemirror SQLAlchemy SQLite

APIs:

IDE:

Visual Studio Code

Testing Tool:

Postman

Team Members:

  • Syed Rifat Raiyan- 180041205
  • Ishrak Hossain- 180041218
  • Md. Maksudul Haque- 180041222

Foreword:

The main goal of this application is to alleviate some of the tedious jobs a competitive programmer has to do on a regular basis by integrating them in a single place.

Installation:

  • Step-1: Make sure Python 3.7+ 64-bit is configured in your PC.
  • Step-2: Open powershell, and install the required packages and dependencies by running:
pip install -r requirements.txt
  • Step-3: Run run.py with the command:
python run.py
  • Step-4: The application will be up and running on http://127.0.0.1:5000/

Features:

Landing Page (pre-Login):

Landing Page

Login/Signup:

Users can create a new account or login to an already existing account. If they forget their password, then a "Reset Password" link will be sent to their email. Login Signup Reset Password

Landing Page (post-Login):

Text editor area with Syntax Highlighting, Auto-Indentation, Auto-Brackets Matching, Auto-Brackets Highlighting and Line Highlighting. Supports a total of 20 programming languages.
C C++ C# Clojure Dart Go Haskell Java JavaScript Kotlin Lua PHP Perl Python Ruby Rust Scala Shell Script Brainf**k Objective-C
IDE Languages

Compile/Run Code:

Users can click on Compile(Alt+C) to compile their code and on Run(Alt+R) to run their code. The source code, Standard Input and Standard Output (along with Build Log, Time taken and Memory usage) will be shown. Run StdIO

Save Codes:

Users can save their code by clicking on Save(Alt+S) after providing a name for the file. They can click on "Copy" to copy the contents to clipboard or on "Download" to download the file to the local machine. SaveName SaveCodes

Save Templates:

Ditto. SaveTemplates

Upcoming Contests:

Users can view a list of upcoming contests on 12 of the most popular online judges. The contests are categorized based on topics and difficulty levels and each list consists of the Contest Title, Contest Link, Start Time, End Time and Duration. Upcoming1 Upcoming2 Upcoming3 Upcoming4 Upcoming5 Upcoming6

Profile Statistics:

Users can view profile stats from 5 of the most popular online judges after selecting one of them and providing a judge handle/username. Stats include Contest Rating Line-graph, Submission Verdicts Doughnut-graph, Submission Activity Heatmap/Matrix-chart and list of Unsolved problems for up-solving. ProfileStatistics1 ProfileStatistics2 ProfileStatistics3 ProfileStatistics4 ProfileStatistics5

Algorithms:

Users can keep track of the algorithms they learn throughout their competitive programming journey by saving any good resources/problems pertaining to an algorithm they can find along with their subjective proficiency in the algorithm. They can choose to update any entry if they come across any new resource/problem or if they feel their proficiency in the algorithm has improved. They can also delete any algorithm entry. Users can have a slight idea about the algorithmic topics they have/don't have a grasp over by viewing the Proficiency Radar-chart and practise accordingly. Algorithms1 Algorithms2 Algorithms3 Algorithms4 Algorithms5 Algorithms6

Resources:

Tutorials:

Inspirations:

We were inspired by similar projects like: