CpZen is an Online Integrated Development Environment (IDE) for competitive programmers made as the Lab project for CSE 4510: Software Development Lab.
- Syed Rifat Raiyan- 180041205
- Ishrak Hossain- 180041218
- Md. Maksudul Haque- 180041222
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.
- 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/
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.
Text editor area with Syntax Highlighting, Auto-Indentation, Auto-Brackets Matching, Auto-Brackets Highlighting and Line Highlighting. Supports a total of 20 programming languages.
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.
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.
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.
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.
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.
We were inspired by similar projects like: