Skip to content

A waitlist schedule solver for minerva, built on the visual schedule builder reserved engineered API

Notifications You must be signed in to change notification settings

mvivarmaas/VSBProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

freeseatfinder.com

The following is the code for freeseatfinder.com Note an unexpected number of users joined and it became a bit too expensive to opperate without some code changes, with a bit of work the service will be back up again

How to deploy

run the following commands

  1. git clone https://github.com/abubakardaud/VSBProject
  2. cd VSBProject If you have an IDE open this with an IDE or virtualenv
  3. pip3 install requirements.txt
  4. python3 manage.py makemigrations
  5. python3 manage.py migrate
  6. python3 runserver

To do list in terms of priority

  1. Change the system schudule to ping VSB so we don't get rate limited; need to upgrade (django-background-tasks)
  2. Make sure the pings appear to look normal from google chrome
  3. Change the CSS / HTML to make it more pretty
  4. OAuth and accounts with McGill login so people can remove / add to the waitlist
  5. Introduce rate limits so users can't ping our servers hundreds of times in seconds
  6. Auth for emails
  7. Introduce a cheaper Phone system to Auth phones send texts to users, using email to text.

API

Vist https://www.freeseatfinder.com/API to find out how to use the API

File structure

.
├── _VSBProject (settings, don't edit unless you know what you are doing )
├── _mainpage (the main webpage itself is an app and it's hosted here)
│   ├── VSBLogic.py (has the code to reverse engineer the VSB API) 
|   ├── models.py (data base ORM models layout for the SQL data base) 
|   ├── urls.py (maps the URLs to views)
|   ├── views.py (functions that return a view to the client (HTML page etc))
|   └── tests.py (tests for the app need to write more functions)   
|   
├── _static (contains the static files, CSS Javascript)
├── _staticfiles (generated staticfiles by Django)
├── _templates
|   ├── 500.html (server error HTML)
|   ├── API.html (Api HTML code to show people how to use the API)
|   ├── account.html (Todo need to build an account page)
|   ├── base_template.html (Base template header and footer, everything else extends from this one, look up Django extend)
|   ├── contact.html (contact me using HTML)
|   ├── contactsuccess.html (contact success)
|   ├── fail.html (failed page for the process of finds class)
|   ├── index.html (landing page)
|   ├── no_crn.html (user didn't check a crn)
|   ├── results.html (pull the classes after look up from the index page 
|   └── success.html (added to the waitlist success for the user)
│   
│── Procfile (for heroku don't touch unless you know how to use Heroku)
|── README.md (this current text)
|── manage.py (Djnago file, read Djnago docs)
└── requirements.txt (has all the needed installs to make the project work ) 

About

A waitlist schedule solver for minerva, built on the visual schedule builder reserved engineered API

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published