Acebook is a collaborative project that aims to recreate the essence of Facebook in a simplified manner. Developed by a group of contributors, Acebook is built using Node.js and React, with a primary focus on providing a platform for user interaction through posts, comments, and avatars.
To get started with Acebook:
- Clone the repository:
git clone https://github.com/xAmiBa/acebook.git
- Navigate to the project directory
- Install dependencies for both the server and client:
npm install
in thefrontend
directory and theapi
directory. - Set the JWT_SECRET environment variable:
export JWT_SECRET="your-secret-key"
- Start the server:
npm start
in thefrontend
directory. - Start the client:
npm start
in theapi
directory.
Acebook provides the following features:
- User authentication and authorization with JWT tokens.
- Creating and viewing posts on the main feed.
- Liking and commenting on posts.
- Uploading avatars for user profiles.
- Viewing user profiles and their posts.
The server, built using Node.js and Express, handles authentication, posts, comments, avatars, and user data.
- Express: Web application framework for handling HTTP requests.
- JWT: JSON Web Token for user authentication.
- Multer: Middleware for handling file uploads.
The client, built using React, offers a user interface for interacting with Acebook.
- React: JavaScript library for building user interfaces.
- React Router: Library for handling navigation and routing.
- CSS Modules: Modular CSS styling for components.
The project includes testing with Cypress and Jest. The group worked collaboratively on a legacy codebase with only authentication, and testing was introduced to ensure the stability and reliability of the existing functionality.
- Cypress: End-to-end testing framework for web applications.
- Jest: JavaScript testing framework for unit and integration testing.
- After starting both the server and client, navigate to
https://localhost:3000
in your browser. - Sign up for an account or log in if you already have one.
- Explore the main feed, create posts, and interact with other users.
This project is licensed under the MIT License - see the LICENSE file for details.