Skip to content

Lidhya/Fuse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Fuse - Social Media Project

Fuse is a social media platform that allows users to connect, share, and interact with each other. It is built using a combination of React.js, Node.js, Express.js, MongoDB, and other technologies. This README provides an overview of the project and its features.

Features

  • User Registration and Authentication: Fuse uses JSON Web Tokens (JWT) for user authentication, allowing users to create accounts, log in, and access protected routes.

  • User Actions: Users can create, edit, like, and comment on posts. They can also follow and unfollow other users to see their latest updates.

  • Notifications: Fuse integrates with the News API to fetch the latest news and provide personalized notifications to users based on their interests.

  • Library Page: Fuse includes a library page that utilizes the Books API to showcase a collection of books or provide book recommendations to users.

  • Real-time Chatting: Real-time chatting functionality is implemented using Socket.io, enabling users to engage in instant messaging with other users on the platform.

  • UI Design: The user interface of Fuse is designed with a well-focused approach using Tailwind CSS, providing a modern and intuitive experience for users.

Technologies Used

  • React.js: A JavaScript library for building user interfaces, used for the front-end development of Fuse.

  • Node.js: A JavaScript runtime environment, used for the back-end development of Fuse.

  • Express.js: A web application framework for Node.js, used for building the server-side logic and API endpoints.

  • MongoDB: A NoSQL database, used for storing and managing the application's data.

  • S3 Bucket: Amazon S3 (Simple Storage Service) is used to store and serve static files such as images or other media.

  • JSON Web Token (JWT): Used for user authentication and authorization.

  • Socket.io: A library that enables real-time, bidirectional communication between clients and the server, used for implementing real-time chatting functionality.

MVC Architecture

Fuse follows the Model-View-Controller (MVC) architectural pattern, which separates the application into three components:

  • Model: Responsible for managing the application's data and interacting with the database (MongoDB in this case).

  • View: Handles the presentation layer, rendering the user interface and interacting with users.

  • Controller: Acts as the intermediary between the Model and View, handling user requests, processing data, and updating the model or view accordingly.

This architectural pattern helps organize the codebase and maintain a clear separation of concerns.

Getting Started

To run Fuse locally, follow these steps:

  1. Clone the repository: git clone https://github.com/your-username/fuse.git
  2. Install the dependencies for each interface: npm install
  3. Set up the required environment variables (e.g., database connection, API keys).

client - env file

REACT_APP_NEWSDATA_API_KEY
REACT_APP_BOOKS_API_KEY

server - env file

MONGO_URL
JWT_SECRET
PORT
S3_NAME
S3_REGION
S3_ACCESS_KEY_ID
S3_SECRET_KEY

  1. Start the development server, client and socket: npm run dev
  2. Access the application in your web browser at http://localhost:3000

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published