mohammed firdous

Cruddur

·source
Cruddur

Cruddur is a micro-messaging app where users share posts and photos that can expire.

Cruddur is a demo microblogging application. I rebuilt it on AWS so it can scale better and run more reliably.

I made the app API-driven with separate frontend and backend services. This improved scaling and maintenance. I used AWS services for auth, data storage, and media uploads.

What it is

Cruddur is a microblogging platform with user authentication, feeds, profiles, and direct messaging.

  • Frontend: A React application that provides the user interface.
  • Backend: A Flask API that handles business logic, running on AWS Fargate.
  • Authentication: Amazon Cognito for secure user sign-up and sign-in.
  • Databases:
    • PostgreSQL (on Amazon RDS) for structured data like user profiles and posts.
    • DynamoDB for real-time messaging, using Streams and Lambda to update message group orderings.
  • Media: Amazon S3 for storing user-uploaded images and avatars, with Amazon CloudFront for fast delivery.

How It's Built

  • Observability: The system is instrumented for monitoring and debugging with a combination of tools:
    • AWS X-Ray: For tracing requests across services.
    • CloudWatch Logs: For centralized logging.
    • OpenTelemetry (Honeycomb): For distributed tracing and observability.
    • Rollbar: For real-time error monitoring.
  • CI/CD: A complete CI/CD pipeline using GitHub Actions automates testing, building, and deploying the frontend and backend services.
  • Configuration: AWS Systems Manager (SSM) Parameter Store is used for managing secrets and configuration, ensuring that no sensitive data is hardcoded in the application.
  • Networking: An Application Load Balancer (ALB) distributes traffic to the backend services, with health checks to ensure reliability.

Screenshots

Cruddur Screenshot 1Cruddur Screenshot 2Cruddur Screenshot 3Cruddur Screenshot 4