Skip to content

Commit 933401f

Browse files
authored
Update README.md
[skip ci]
1 parent 489f2c4 commit 933401f

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

README.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,42 @@
2222
- Database design and Create, Read, Update in SQL
2323
- Rewrote the entire application to use [Flask SQL Alchemy](https://flask-sqlalchemy.palletsprojects.com/en/2.x/), an extension of [SQL Alchemy](https://www.sqlalchemy.org/)
2424
- Developed MVP of application with [SQLite](https://www.sqlite.org/index.html) locally and Deployed with [MySQL](https://www.mysql.com/)
25-
- Using [Flask](https://flask.palletsprojects.com/en/1.1.x/) as a server-side framework
25+
- Using [Flask](https://flask.palletsprojects.com/en/1.1.x/) as a server-side micro-framework
2626
- Python Class/Models and Schemas
2727
- [Jinja](https://jinja.palletsprojects.com/en/2.11.x/) templating
2828
- Password hashing using [Werkzeug](https://werkzeug.palletsprojects.com/en/1.0.x/)
29+
- Caching user sessions with [Redis](https://redis.io/) and [Flask-sessions](https://flask-session.readthedocs.io/en/latest/)
2930
- Parsing data from API with python
3031
- Parsing data from SQL queries with python
3132
- Calculations using data from API and database
32-
- Continous integration and continuous deployment with [Travis CI](https://travis-ci.org/)
33-
- Hosting application on AWS with an [EC2](https://aws.amazon.com/ec2/) instance with an [Ubuntu](https://ubuntu.com/) operating system, [Gunicorn](https://gunicorn.org/) WSGI HTTP server, and [Nginx](https://www.nginx.com/) reverse proxy
34-
- Using [Ubuntu](https://ubuntu.com/) as operating system
35-
- [Gunicorn](https://gunicorn.org/) configuration
36-
- [Nginx](https://www.nginx.com/) configuration
33+
- Hosting application on AWS with an [EC2](https://aws.amazon.com/ec2/) instance with an [Ubuntu](https://ubuntu.com/) operating system, [Gunicorn](https://gunicorn.org/) WSGI HTTP server, and [Nginx](https://www.nginx.com/) front-end reverse proxy
34+
- Using [Ubuntu](https://ubuntu.com/) as an operating system
35+
- [Gunicorn](https://gunicorn.org/) configuration and error-logging
36+
- [Nginx](https://www.nginx.com/) configuration and server security/performance optimization
3737
- Hosting MySQL database on AWS with a [RDS](https://aws.amazon.com/rds/) instance
38-
- (Deprecated) Hosting application on AWS with an [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) instance and MySQL database on AWS with a [RDS](https://aws.amazon.com/rds/) instance
38+
- Hosting Redis cache on AWS with an [Elasticache](https://aws.amazon.com/elasticache/) instance
3939
- Using AWS Cloudfront as a Content Delivery Network (CDN) and connecting Google Domains custom domain to AWS CDN
4040
- Error logging with [Sentry](https://sentry.io/welcome/) for hosted application in production
41+
- Continous integration and continuous deployment with [Travis CI](https://travis-ci.org/) and AWS CodeDeploy
42+
- (Deprecated) Hosting application on AWS with an [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) instance and MySQL database on AWS with a [RDS](https://aws.amazon.com/rds/) instance
4143

4244
## 🛠 Technologies
4345
|Graphic Design |Front-End |Back-End |Database |Deployment |Testing |
4446
| ------------- | ------------- | ------------- | ------------- | ------------- | --------------|
4547
|Inkscape |HTML5 |Python3 |MySQL |AWS EC2 |Pytest |
4648
|Freepik |CSS3 |Flask |SQL Alchemy |Ubuntu |Lighthouse |
4749
|. |Bootstrap 4 |Werkzeug |Flask SQL Alchemy|Gunicorn |. |
48-
|. |Jinja |. |. |Nginx |. |
50+
|. |Jinja |. |Redis |Nginx |. |
4951
|. |. |. |. |AWS RDS |. |
52+
|. |. |. |. |AWS Elasticache|. |
5053
|. |. |. |. |Sentry |. |
5154
|. |. |. |. |Travis CI |. |
55+
|. |. |. |. |AWS CodeDeploy |. |
5256

5357
## ⚖️ Methodology
5458
- Initially hosted application on AWS [Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/) for a gradual introduction to AWS. Previously only used Heroku to host full-stack web applications, so I chose a similar IaaS offered by AWS. After numerous Elastic Beanstalk policy changes and disconnections, decided to go to the next level down in AWS, which is hosting this application on an EC2 instance. This offered a lot of experience and opportunities for learning about web servers.
5559
- Ubuntu as OS since it's the most popular operating system for web servers. Gunicorn as the WSGI since it's fast. Nginx as the reverse proxy since it was made with this optimization in mind.
60+
- Initially stored user sessions in a tmp folder with [`mkdtemp`](https://docs.python.org/3/library/tempfile.html), however Nginx had trouble accessing it in production. Therefore refactored application to store user sessions in a Redis database and hosted the Redis database on AWS [Elasticache](https://aws.amazon.com/elasticache/).
5661

5762
## ⚙️ Features
5863
- Login, sign-up

0 commit comments

Comments
 (0)