-
Deploy for once.
-
Add some CSS, and make the design at least look like mediocre.
-
Add some CSS, and make website responsive.
-
Add TLE and MLE detection mechanism.
-
Deploy Again
-
Try to make static content work in render again
-
Use PostgreSQL DB, and put all problem data in DB .
-
Proper method to show compiler error
-
Add more test cases and test problems.
-
Add 4-5 new problems.
-
Creating Demo video and code walkthrough video.
-
Adding proper documentation in ReadMe.md
-
Decouple backend and frontend, and use React
-
Decouple serving problem details and submitting problems.
-
Make sure ??? is installed
-
make user temp_executables directory exist in /data/submissions
-
Open oj_django_project/problems/backend/config.py
- Make sure that Python compiler path and C++ compiler path is mentioned
-
Open terminal in ./oj_django_project directory
-
Start virtual environment (for bash shell)
source ./venv/bin/activate
-
Install required packagess
pip install -r requirements.txt
-
Start the server
python3 manage.py runserver 8000
-
Go to
https://127.0.0.1:8000/
.
- Can use username =
dummy
and password =dummy
.
- get_next_sub_dir() in core.py not implemented, just returns "data1" for now.
- Python version used is 3.7 (in windows_1 environment), but Python Language is visible with name Python 3.10
- Compiler error displays code file path. Can be used maliciously
- Problem Model does not contain memory_limit
- Submission Model does not contains memory_usage
- Memory usage and runtime units are not specified.
- Add user log in
-
put in docker - Add Time, Memory limit, Network security, ....
-
deploy on firebase, heroku, AWS - Option to see compiler error
- Add multiple testcases for problems (big IO testcases)
- Add More problems. Have 7-8 good and (nowhere else you could find) problems.
- Improve the UI
- Testing including NFR
- Django . gets logged out automatically
- send Friends
- Forgot password/change password thing
- CSRF protection in Submit code. Learn how CSRF works, what kind of thing a hacker do with it.
- User Login success, user signup success message/alert
- Put validation in username and password and email . Cross Sire Scripting attacks!!
- Put db handling code in models
- ToDo List
✔️ Done
▶️ In progress
-- Learning Basics (1 week)
- ✔️1a. Finish Django Learning Part 3,4
- ✔️1b. Finish React Learning basic
▶️ 1c. Learn MySQL + Django integration basics▶️ 1d. Learn React + Django integration basics- *1e. Learn/Try docker basics and how to send and recieve files from docker .
- *1f. Learn/Try user authentication in a website
- *1g. Try using timeout, and running and compiling a code file, from a program.
-- Design (1-2 day)
- ✔️2a. Decide the database architect, all tables, primary keys, foreign keys
- ✔️2b. Decide the UI,
- ✔️2c. Decide the backend architecture : dataflow, api, etc.
-- Database ( 2-3 hour )
- ✔️3a. Create the database.
-- Implementing the Backend (1-1.5 week )
- ✔️4a. Getting List of problems
- ✔️4b. Getting a problem details
- ✔️4c. Submitting the code
- ✔️4d. Getting the verdict
- ✔️4e. Getting n recent submissions
-- Implement the UI + backend finalizing (1 week )
-
✔️5a. Home page : List of problems
-
✔️5b. Problem page : problem details
-
✔️5c. Submit Page
-
✔️5d. Submissions page :
-
✔️6a. Integrate all things ( 2-3 days)
-- ✔️MVP done
-
Add user authentication (1-2 days)
-
Add docker (2-3 days)
-
Add C, Ruby, Java 11, Kotlin
-
Add multiple testcases for problems (big IO testcases)
-
Add More problems. Have 7-8 good and (nowhere else you could find) problems.
-
Add support of custom output checker program instead of simple file matcher (2-3 days)
-
Deploy on heroku(1 day)
-
Deploy using AWS
-
Get envioronment variable / VM args. like env, problem_data_path, etc.
-
Add Unit Testing
-
Add UI Testing
-
Add Functional and NFR Testing
-
Make design more scalable : Put multiple docker instances,
-
Use Ngnix and Gunicorn
-
Migrate to postgreSQL ( ?? 3 days or more )
-
Vague : Improve the UI ( 2 days )
-
Use React
-
Better Design of Table
-
Vague : Improve the backend ( 2 days )
-
Todo Part in backend
-
Function based views to class based views
-
more SOLID code.
-
divide code into more modules
-
Add run code with custom testcase feature
-
Add contests
-
User is able to see his old submissions
-
User is able to see which test case failed.
-
Syntax Highlighting in you text editor
-
Cache : Store most recent code to local storage (like leetcode)
-
copy button near sample IO