An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# TeachMeSTEM

teachmestem logo

[![code style](https://img.shields.io/badge/code_style-black-black)](https://github.com/psf/black)
[![imports](https://img.shields.io/badge/imports-isort-blue)](https://github.com/PyCQA/isort)
[![python](https://img.shields.io/badge/python-3.10_|_3.11_|_3.12_|_3.13-ffde75)](https://github.com/python/cpython)
[![django](https://img.shields.io/badge/django-5.2-0c4b32)](https://github.com/django/django)
[![CI](https://github.com/cameroncthomas/teachmestem/actions/workflows/ci.yml/badge.svg)](https://github.com/cameroncthomas/teachmestem/actions/workflows/ci.yml)
[![Coverage Status](https://coveralls.io/repos/github/cameroncthomas/teachmestem/badge.svg?branch=main)](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/)




navigate to exam board from home page
complete topics in exam board
display revision notes and worked examples
add subject to my subjects
sign up form
verification email

## 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!