Based on php version ย Website under development. Can be accessed here
To have a website that caters all needs that a CSE UG has.
- adding problems (login_required)
- adding testcase (for now we can only add one test case at a time, also only author of a problem can add testcase for the problem)
- login/logout
- adding solution (checks if user is logged in or not)
- evaluation of solution
- updation of table for problems upon adding solution by the user(successful/total submissions), ie. each problem stores count of AC/ WA to itself
- adding predefined tags to problems
- We've got a discussion forum with comments functioning !!
- User can now edit profile !! (but currently we don't store anything editable)
- Now user can see/download all submited codes. How cool is that !!
- User Registration, Now user can SignUp, so no need to go to admin section to create user.(will be implementing verification soon).
- We've got a good editor built ! It can do a lot of things (see details here)
What lacks ?
- Only mode of submission is through file upload
- No work is done for creating a contest
- frontend for various pages
- Editing of: problem/ added testcase
Mapped urls :
admin/
''
profile/<username>
profile/<username>/edit
problems/add
problems/display/<int:problem_id>
problems/add/testcase
problems/submit/<int:problem_id>
submit/<int:id>/
submissions/<str:username>/
submissions/<str:username>/view/<int:id>/
submissions/download/<int:id>/
problems
login
logout
forum
forum/post/<int:post_id>/
editor/
-
Using docker: check here
-
Manual :
- create a virtual environment and activate it (google it)
- Install dependencies into it
pip3 install -r requirements.txt
orpython -m pip install -r requirements.txt
. - Check out to develop branch.
- Make sure if you are using virtual environment, you have all dependencies installed (mentioned in
requirements.txt
).python3 manage.py migrate --run-syncdb
read here (p.s. all migration files are being ignored, see .gitignore) ,python3 manage.py makemigrations
andpython3 manage.py migrate
. This will update database with tables as we describe in models.py. Thenpython3 manage.py runserver
and play around testing what all has been developed. usepython3 manage.py createsuperuser
to create admin credentials and then go tolocalhost:8080/admin
afterpython3 manage.py runserver
to log-in as admin. Create some user accounts/ profile pages/ question tags etc and play along with them, logging in fromlocalhost:8080
(you may use credentials of user you just created, but make sure you've created his/her profile as well from admin pannel).