ACEBOOK is a comprehensive social media application where users can create posts, like and comment on posts, manage their profile, and receive notifications.
The application is built with a React.js frontend, and an Express.js backend with a set of REST APIs.
- User Authentication: Signup/Login/Logout functionality using JWT for token-based authentication.
- User Profiles: Each user has a profile page where they can update their profile picture and manage their information.
- Posts: Users can create posts with text and image content. They can also like posts.
- Comments: Users can comment on posts and like comments.
- Groups: Users can create and join groups, post content on group pages, and even post as the group on the main feed.
- Follow System: Users can follow other users, and a list of followers can be viewed in the side menu.
- Notifications: Users receive notifications for various activities related to their posts and interactions with other users.
- Search: Users can search posts based on keywords.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Node.js
- npm
-
Clone the repository:
git clone https://github.com/Shakhrai8/acebook.git
-
Install dependencies in both the frontend and backend directories:
cd frontend && npm install cd .. cd api && npm install
-
Create a
.env
file within theapi
directory:echo JWT_SECRET=your_secret_key > .env
Replace
your_secret_key
with a strong, unique value. This will be used for token-based authentication. -
Start the frontend and backend servers:
-
Frontend:
cd frontend && npm start
-
Backend:
cd api && npm run start:test
-
The application will start on localhost:3000
(React app) and localhost:5000
(Express app).
We use Jest for backend testing and Cypress for frontend end-to-end testing.
-
To run backend tests (need to specify the key token in order to run the test):
cd api && jest
-
To run frontend tests:
cd frontend && npx run cypress run
Contributions to ACEBOOK are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue or submit a pull request.
ACEBOOK is licensed under the APACHE License. See LICENSE for more information.