Skip to content

XMaroRadoX/Cruddur-Cloud-based-social-media-platform

Repository files navigation

🐦 Cruddur: A true ephemeral social media platform 🐦

Cruddur is a new micro-blogging platform that emphasizes privacy and the present moment. Users can post updates, thoughts, and photos that automatically expire after a period of time. It aims to reduce trust and safety issues commonly found on social media platforms by limiting personal information, decreasing cyberbullying, and improving the overall user experience. Cruddur also focuses on building a sense of community and increasing trust and safety among users.

Open in Gitpod

Key Features 🔑

  • Ephemeral Posts: Users can create updates, thoughts, and photos that automatically expire after a certain period of time, ensuring that personal information and conversations stay relevant and in the moment. ⏳
  • Privacy Emphasis: The platform limits the amount of personal information available online, reducing the risk of identity theft or misuse of sensitive data. 🔒
  • Reduction of Trust and Safety Issues: By expiring posts, the platform decreases the potential for cyberbullying, harassment, and the sharing of harmful content, fostering a safer online environment. 🛡️
  • Enhanced User Experience: Users can focus on the present moment without worrying about long-term consequences, providing a more positive and enjoyable social media experience. 😊

Demo 🎥

Photos displyed below shows website in action

Sign-in Page

Homefeed

Profile

System Design 🛠️

Table of contents 🏷️

File Name Description
aws Contains AWS lambda functions , policies, task-definitions and cloudformation templates
bin Contians bash scripts that should ease the development/deployment of the project
frontend-react-js contains the frontend of the project and react components
backend-flask contains the backend and libraries for the application
thumbing-serverless-cdk contains the serverless image posting solution

Pre-requisites 🪛

  • Running in gitpod or codespaces would be preferable as it removes a lot of the heavy lifting of setting your machine up.
  • AWS Account is required
  • All envars needed to run local is found in the folder backend-flask and frontend-react-js respectively.

Run 🟢

Before starting the application, make sure to set up the required environment variables. You can do this by creating a .env file in the root directory of the project and providing the necessary values.

To start the application and its dependencies, use Docker Compose. In the project's root directory, run the following command:

docker-compose up -d
```cd bin/db/
./setup.sh

Feel free to modify the instructions and code snippets according to your specific application and setup requirements.

Journaling

This table serves as a journaling tracker, documenting the tasks I completed throughout the project. this tracker helps keep a record of things done throughout the project and helps realizing any future changes.

The /journal directory contains:

Billing and Architecture Load Balancer and Custom Domain
App Containerization Serverless Image Processing
Distributed Tracing CI/CD with CodePipeline, CodeBuild and CodeDeploy
Decentralized Authentication CloudFormation
Postgres and RDS Cleanup
DynamoDB and Serverless Caching
Deploying Containers

Licensing 📝

This code is licensed under the Apache 2.0 License.

Authors 🖊️

Contribution 🥂

Feel free to contribute just make a pull request and do what you wish. 😼

Apache License