# CSA Architechture

## Technologies
1. The backend of the website runs on Django, a python web framework.
2. The database runs on PostgreSQL.
3. The server is exposed to the internet via nginx, which reverse proxies to gunicorn, a python server that works well with Django.
4. SSL is managed via LetsEncrypt. It's free, and auto renews.
5. AWS Security Groups are used to control ingress and egress traffic. Port security, and routing is handled here.
6. The server OS is Ubuntu 16 LTS.
7. The DNS is currently on GoDaddy, but we recommend moving it to Cloudflare ASAP.
8. Django uses Redis internally as a queue and for caching. This is not being used, but the feature is available.
9. The project is available containerized as a Docker container.
## Django Code Structure
1. Django is an MVC framework, and you can find a folder with models, views and templates accordingly.
2. The templates folder includes all HTML files where you can make your changes.
3. The static folder includes all static resources such as images and javascript.
4. The views folder contains all the application logic. You can find 3rd party integration code here.
5. The models folder contains all the models for the application. Users, Leads and more.