ONetwork Forum

🌐 ONetwork Forum - Built from scratch with MERN Stack

15
2
JavaScript

🌐 ONetwork Forum

ONetwork Forum Capture

βœ¨πŸš€Full-stack forum website built with MERN Stack (ReactJS, NodeJS, ExpressJS, MongoDB).βœ¨πŸš€

Live Demo


β˜„ Features β˜„

  • User authentication using JSON Web Tokens (JWT) with BFF (Backend-For-Frontend) security pattern.
  • Allow users to create, read and delete topics.
  • Allow users to create, read and delete comments.
  • Allow users to create, read and delete replies.
  • Search engine for searching topics supported with sorting filters.
  • Allow users to upvote and downvote topics and comments.
  • Allow users to see their published comments, created topics, upvoted topics, their following list and their followers list.
  • Allow users to reset their account password if they forgot it.
  • Nested comments threading.
  • Homepage feed (Front Page).
  • Allow users to follow each other.
  • Allow users to edit their profile informations and change their profile avatar and cover.
  • Users can’t access their account after signin-up till they activate it from the link sent to the email associated with their account.
  • Sending users an email in case they request a password reset or an email verification.
  • … And more to come with next updates!


πŸ’» Used Technologies πŸ’»

  • ReactJS
  • ExpressJS
  • NodeJS
  • MongoDB
  • Redux
  • Redux Toolkit
  • React Bootstrap

❓ How to use ❓


1- Clone this repo.

git clone https://github.com/ilyasbelfar/ONetwork-Forum.git
cd ONetwork-Forum

2- Install Client dependencies.

cd client/
npm i

3- Install Server dependencies.

cd server/
npm i

4- Configure environment variables by creating .env file in the server directory and copy the content of env.example file in .env file, and fill it with your own secrets.

cd server/
cp env.example .env

5- Create a MongoDB database and name it 'my_app', You can use MongoDB Atlas cloud free tier.

6- Start server.

cd server/
npm start

7- Start client in another terminal while the server is running.

cd client/
npm start

πŸ“Œ Other πŸ“Œ


I encourages contributions! Feel free to discuss any bug fixes/features in the issues section. And if you wish to work on this project:

  1. Fork this project
  2. Create a branch (git checkout -b new-branch)
  3. Commit your changes (git commit -am 'add new feature')
  4. Push to the branch (git push origin new-branch)
  5. Submit a pull request!