ska-referee-test/REFERENCES.md
viveksantayana f361d25728 Finished data upload
Refactored to move security package inside common
Moved data folder to process root.
2021-11-28 02:30:46 +00:00

83 lines
4.0 KiB
Markdown

# References for Learning Flask, etc
## Documentation
### Docker/Docker-Compose
- [Docker Compose Reference](https://docs.docker.com/compose/compose-file/compose-file-v3/)
### MongoDB/PyMongo
- [MongoDB Shell Commands](https://docs.mongodb.com/manual/reference/)
- [PyMongo Driver](https://pymongo.readthedocs.io/en/stable/)
## Source Code
- [MongoDB Docker Image entrypoint shell script](https://github.com/docker-library/mongo/blob/master/5.0/docker-entrypoint.sh) (Context: Tried to replicate the command to create a new user in the original entrypoint script in the custom initialisation script in this app.)
## Guides
### Flask General
- [How to structure Flask Projects](https://www.digitalocean.com/community/tutorials/how-to-structure-large-flask-applications)
- [Tables](https://www.blog.pythonlibrary.org/2017/12/14/flask-101-adding-editing-and-displaying-data/)
- [Tables, but interactive](https://blog.miguelgrinberg.com/post/beautiful-interactive-tables-for-your-flask-templates)
## Stack Exchange/Overflow
### MongoDB
- [Creating MongoDB Database on Container Start](https://stackoverflow.com/questions/42912755/how-to-create-a-db-for-mongodb-container-on-start-up)
- [Passing Environment Variables to Docker Container Entrypoint](https://stackoverflow.com/questions/64606674/how-can-i-pass-environment-variables-to-mongo-docker-entrypoint-initdb-d)
- [Integrating Flask-Login with MongoDB](https://stackoverflow.com/questions/54992412/flask-login-usermixin-class-with-a-mongodb) (**This does not work with the app as is, and is possibly something that needs more research and development in the future**)
- [Setting up a Postfix email notification system](https://medium.com/@vietgoeswest/a-simple-outbound-email-service-for-your-app-in-15-minutes-cc4da70a2af7)
## YouTube Tutorials
### General Flask Introduction
- [Part 1: Basics](https://www.youtube.com/watch?v=mqhxxeeTbu0)
- [Part 2: HTML Templates](https://www.youtube.com/watch?v=xIgPMguqyws)
- [Part 3: Bootstrap and Jinja](https://www.youtube.com/watch?v=4nzI4RKwb5I)
- [Part 4: HTTP Methods and Data Handling](https://www.youtube.com/watch?v=9MHYHgh4jYc)
- [Part 5: Sessions](https://www.youtube.com/watch?v=iIhAfX4iek0)
- [Part 6: Flashing Alerts](https://www.youtube.com/watch?v=qbnqNWXf_tU)
- [Part 9: Static Files](https://www.youtube.com/watch?v=tXpFERibRaU)
- [Part 10: Blueprints and Sub-Files](https://www.youtube.com/watch?v=WteIH6J9v64)
- [All in One with some more precise methods and techniques](https://www.youtube.com/watch?v=GW_2O9CrnSU)
Note: These tutorials use an outdated version of Bootstrap where some of the elements no longer apply.
### Build a User Log-In System using Python and MongoDB
- [Part 1](https://www.youtube.com/watch?v=w1STSSumoVk)
- [Part 2](https://www.youtube.com/watch?v=mISFEwojJmE)
- [Part 3](https://www.youtube.com/watch?v=tIoiR3N34i8)
- [Part 4](https://www.youtube.com/watch?v=5oC4-j3WWIk)
This method uses a basic HTML form and handles log-ins manually (rather than `flask-login` or `flask-auth`).
It uses `sessions` to handle user interactions (rather than cookies).
A better method would be to layer this with other Flask modules, such as `flask-login`, `flask-auth`, `flask-wtforms`, etc.
This tutorial is nevertheless really useful for integrating with **MongoDB**.
### Creating a User Login Session using Python, Flask, and MongoDB
- [Tutorial](https://www.youtube.com/watch?v=vVx1737auSE)
A much simpler and more rudimentary introduction to Flask and MongoDB.
### `flask-login`
- [Intro to `flask-login`](https://www.youtube.com/watch?v=2dEM-s3mRLE)
- [Build a User Login System with `flask-login`, `flask-wtforms`, `flask-bootstrap`, and `flask-sqlalchemy`](https://www.youtube.com/watch?v=8aTnmsDMldY)
A much more robust method that uses the various Flask modules to make a more powerful framework.
Uses SQL rather than MongoDB.
### Flask techniques
- [Create a `config.py` file](https://www.youtube.com/watch?v=GW_2O9CrnSU)
### Flask handling file uploads
- [Handlin File Uploads](https://blog.miguelgrinberg.com/post/handling-file-uploads-with-flask)