About

"Habesha Chat" is a full-stack social media application designed to serve as a virtual community hub, fostering social connections among users. With over 2000 users and 100 daily visitors, it provides a platform for individuals to interact with one another, share thoughts and photos, and establish connections through private messaging with friends. The project aims to create a vibrant online community where users can engage in meaningful interactions and build relationships. Through the use of modern web technologies and microservices architecture, "Habesha Chat" facilitates seamless user experiences while prioritizing scalability and performance.

Technologies

Frontend

Backend

Authentication

  • JWT (JSON Web Tokens): Implemented for secure user authentication, ensuring only authorized users can access the application.
  • Image Storage

  • Firebase Storage Bucket: Utilized for storing and serving user-uploaded images, providing scalable and reliable cloud storage.
  • Server Configuration

  • Ubuntu Remote Server: Deployed as the remote server environment, providing a stable platform for hosting the application.
  • Nginx: Used as a reverse proxy server and load balancer to efficiently distribute incoming traffic.
  • Cloud Service Provider

  • Hostinger VPS Hosting: Leveraged for reliable hosting services, ensuring high availability and scalability for the application.
  • Functionality

    User Interaction

  • Enables users to interact with each other by posting thoughts, photos, and connecting with friends.
  • Messaging System

  • Facilitates communication between users through private messaging, fostering social connections within the community.
  • Authentication and Authorization

  • Utilizes JWT for secure user authentication, allowing registered users to access the app's features while maintaining data privacy and security.
  • Scalability and Performance

  • Implements microservices architecture for improved scalability and performance, allowing the application to handle a large number of users and visitors effectively.
  • Agile Development

  • Adopts agile development methodology for project management, ensuring continuous iteration and improvement based on user feedback and evolving requirements.