A port over to another registration system in python
![]() I think expiration should be pending on a proper way to do recurring tasks -- I'm personally in favor of a CLI command that can be run from a cronjob or systemd timer that will do things like auto-expire password reset requests and send the daily registration reports. Now that I'm thinking about it, this does need at least a rudimentary system to make sure that it actually expires. If the expiration is invalid at the time of reset, then the request can just be invalidated and deleted. There's no pressing need for automatic removal until it's implemented. Thoughts @willhockey20? |
||
---|---|---|
contrib | ||
goathacks | ||
migrations | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
Makefile | ||
README.md | ||
requirements.txt | ||
wsgi.py |
GoatHacks Registration Management
This is a rewrite of the original (commit 198f56f2c4
)
management system for Flask 2.1 and Postgres. The focus was on maintainability
in the future and easy modifications for future years.
Setting up a development environment
The Makefile
should have a bunch of useful recipes for you. Once you clone the
repo for the first time, run make init_env
, which will set up the virtual
environment for development. If the dependencies ever change, you can run make upgrade_env
to install the new packages.
To test your code, run make daemon
, which will start a development server. It
will automatically reload after your changes.
Setting up for production
You can use your choice of WSGI server. Instructions are provided below for uWSGI. Please ensure a current (3.x) version of Python and Pip.
- pip install uwsgi # or the equivalent for your distribution's package manager
- mkdir -p /etc/uwsgi/apps-available
- mkdir -p /var/log/uwsgi
- sudo chown -R nginx:nginx /var/log/uwsgi
- mkdir -p /var/app
- git clone https://github.com/WPI-ACM/Hack-WPI-Python /var/app/goathacks
- cd /var/app/goathacks && make init_env
- cp /var/app/goathacks/contrib/goathacks.ini /etc/uwsgi/apps-available/goathacks.ini
- cp /var/app/goathacks/contrib/goathacks.service /etc/systemd/system/goathacks.service
- cp /var/app/goathacks/goathacks/config.py.example /var/app/goathacks/goathacks/config.py
- $EDITOR /var/app/goathacks/goathacks/config.py