Site for hosting CTF contests.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
accounts
challenges
contests
media/challenges
questionnaire
results
static
superleetctf
tags
templates
.gitignore
LICENSE
Procfile
README.md
manage.py
questions.json
requirements.txt

README.md

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