- Python 3.7
- IDE
- Create an virtual enviroment and make sure to run inside it
- Run
pip install -r requirements.txt
to install the dependencies - create database named
jublia
- Run redis in port 6379
Set up environment variable from root project directory Set for development mode
export FLASK_ENV=development
export FLASK_APP=manage.py
export DATABASE_URL=postgresql://postgres:postgres@localhost:5432/jublia
Set up environment variable from root project directory Set for development mode
python manage.py create_db
python manage.py seed_db
celery -A app.celeryconf.celery worker --loglevel=INFO --detach --pidfile=''
celery -A app.celeryconf.celery beat --loglevel=INFO --detach --pidfile=''
Run this command and access the web app at localhost:5000
pytest -vv
Run this command and access the app app at localhost:5000
. You can check curl.sh to access di API
python manage.py run -h 0.0.0.0
P.S. Currently not working, please run locally without docker
docker-compose up -d --build
App running on localhost:5000
. You can check curl.sh to access di API
curl -X POST -H "Content-Type: application/json" http://localhost:5000/save_emails --data '{"event_id": "1", "email_subject": "A good seminar", "email_content": "You should come to this seminar", "timestamp": "2021-12-14 20:02:00"}'
The scheduler will run every 4 seconds and check if any email need to send on the time based on the timestamp
data in database, email sent simulates by updating status
field in emails
table from Unsend
to sent
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.