https://github.com/cameroncthomas/teachmestem
Django web app for an education platform that provides resources, materials, and tools to help students prepare for their exams.
https://github.com/cameroncthomas/teachmestem
allauth bootstrap django django-allauth htmx mathjax mjml oauth2 python recaptcha smtp whitenoise
Last synced: about 2 months ago
JSON representation
Django web app for an education platform that provides resources, materials, and tools to help students prepare for their exams.
- Host: GitHub
- URL: https://github.com/cameroncthomas/teachmestem
- Owner: cameroncthomas
- License: agpl-3.0
- Created: 2025-04-18T17:05:35.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-13T20:54:33.000Z (7 months ago)
- Last Synced: 2025-11-13T22:24:38.804Z (7 months ago)
- Topics: allauth, bootstrap, django, django-allauth, htmx, mathjax, mjml, oauth2, python, recaptcha, smtp, whitenoise
- Language: JavaScript
- Homepage:
- Size: 1.08 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# TeachMeSTEM

[](https://github.com/psf/black)
[](https://github.com/PyCQA/isort)
[](https://github.com/python/cpython)
[](https://github.com/django/django)
[](https://github.com/cameroncthomas/teachmestem/actions/workflows/ci.yml)
[](https://coveralls.io/github/cameroncthomas/teachmestem?branch=main)
Django web app for an education platform that provides resources, materials, and tools to help students prepare for their exams.
Some features include:
- 🔑 User registration and authentication via email or social account (e.g. Google)
- 📝 Upload and view revision notes, questions, model answers, and past papers
- 📐 Beautiful MathJax notes complete with worked example sections
- 📈 Track and evaluate progress by marking topics and past papers as complete
- 📍 Pick out subjects currently studying for quick access to revision material and overall progress
- 💌 Responsive HTML emails for account management (e.g. verification and forgotten password)
- 🚢 Easy-to-navigate and intuitive UI
Technologies used:
- Web framework: [`Django`](https://www.djangoproject.com/)
- Styling: [`Bootstrap`](https://getbootstrap.com/)
- Interactivity: [`htmx`](https://htmx.org/)
- Authentication: [`django-allauth`](https://allauth.org/)
- Static files: [`WhiteNoise`](https://github.com/evansd/whitenoise)
- Bot protection: [`Django reCAPTCHA`](https://github.com/django-recaptcha/django-recaptcha)
- Email service: [`SendGrid SMTP`](https://sendgrid.com/)
- Email templates: [`MJML`](https://mjml.io/)
- Maths text: [`MathJax`](https://www.mathjax.org/)

## How to run locally
Clone the repo and install the dependencies in a virtual environment:
```
pip install -r requirements.txt
```
You will need to add some environment variables too. These are `DEBUG`, `SECRET_KEY`, `SECURE_SSL_REDIRECT`, `RECAPTCHA_PUBLIC_KEY`, `RECAPTCHA_PRIVATE_KEY`, and `SENDGRID_API_KEY`.
If running in development, you will probably want to set `DEBUG = True` and `SECURE_SSL_REDIRECT = False`. The `RECAPTCHA_PUBLIC_KEY`, `RECAPTCHA_PRIVATE_KEY`, and `SENDGRID_API_KEY` keys can be generated by signing up for [reCAPTCHA](https://cloud.google.com/security/products/recaptcha) and [SendGrid](https://sendgrid.com/) respectively.
Now apply the migrations to the database:
```
python manage.py migrate
```
Finally, create a superuser for access to the admin site:
```
python manage.py createsuperuser
```
You are now ready to run the development web server:
```
python manage.py runserver
```
Enjoy!