Social Network
I developed a production ready proof-of-concept social networking app designed to raise awareness about food waste.
Role
Lead Designer
Duration
On Process
Platform
Web
Context
Root To Root is a social media which purpose is to allow users to exchange their goods, this way reducing wastes.
My Role
Since this is a personal project I all the parts of the project which includes frontend, backend and some DevOps..
Architecture Overview
For the system design, I chose a monolithic architecture, utilizing Django as the backend framework due to its rapid development capabilities.
As the application server, I selected uWSGI for its scalability features.
I implemented Nginx as a reverse proxy to manage HTTP and HTTPS requests, redirecting all HTTP traffic to HTTPS.
For the database, I opted for an SQL engine, specifically PostgreSQL. This choice was based on the simplicity of my data models and PostgreSQL's ability to efficiently handle the expected load volume for this type of application.
Database Schema Design
For the database schema, I opted for an Entity-Relationship (ER) diagram to visualize the relationships among all tables.
Infrastructure Design
For this project's infrastructure architecture, I chose AWS due to its industry-leading position and key benefits, such as AWS ECS, which offers easy deployment with low overhead, high availability, and resilience.
Another key point is its cost-effective model, allowing us to pay for EC2 instances and scale horizontally as needed, which is ideal for our proof-of-concept stage.
Additionally, AWS provides excellent documentation, community support, and official assistance when required.
Infrastructure provisioning
I utilized Terraform for Infrastructure as Code (IaC) to provision all the infrastructure. By automating resource provisioning, I ensured repeatability and gained the ability to easily test the infrastructure before deployment.