Skip to content

super1337/Super1337-CTF

Repository files navigation

SuperLeet CTF site made with Django

Installation

  1. Clone the repo: https://github.com/Ayush21298/SuperLeet-CTF.git
  2. cd to the Django project directory: cd SuperLeet-CTF/webapp-django/
  3. Install requirements: pip3 install -r requirements.txt
  4. Run the server: python3 manage.py runserver

Project Description

There are 3 apps in this Django project.

  • questionnaire: This app will handle the part of the contest consisting of questions (normal or MCQ-type).
  • jeopardyctf: This app will handle the jeopardy style CTF contests.
  • accounts: This app concerns with user profiles.
  • allauth: This is the app we're using for authentication, with social logins.

We're using django-allauth for authentication. GitHub, Google, and Facebook has been added as 'social login' providers. To explore it, visit the routes:

  • http://127.0.0.1:8000/accounts/signup/
  • http://127.0.0.1:8000/accounts/login/
  • http://127.0.0.1:8000/accounts/logout/

addquestions command

There is an addquestions command, which adds question from an input JSON file to the database. This will hopefully make adding new questions a robust process.

Below is an example run of the addquestions command.

λ python manage.py addquestions
Successfully added questions to DB from 'questionnaire/questions/questions.json'

By default is assumes the input JSON file is questionnaire/questions/questions.json.

Milestones

  • Add django-allauth to project.
  • Add social logins to the project.
  • Create core functionalities for the questionnaire app.
  • Create scoring system for questionnaire.
  • Complete questionnaire by making routes, views and templates.
  • Make models and basic backbone for jeopardy-style challenges.
  • Add time based contests system.
  • Make Challenge and Quizzes inaccessible out of challenge during ongoing time
  • Checking mechanism for contests
  • Score saving for User and Contest
  • Leaderboard