A minimalistic version of popular website stackoverflow.
I have been developing this project under the course "Distributed System (CSE-601)". The requirement
- At first I have to develop this project following monolithic architecture.
- User sign up, sign in, logout functionality
- User can post textual information without or with code ( either copy paste teh code or directly input the file from their system)
- One user can view other users post in the home page ( most recent post will be at the frontline ). But the user will not view their posts from the home page.
- Users will have notification of other users's posting
- Users can click on the notification to view the details of the post related to the notification
- The viewed notification will not be rendered later. But the unviewed notification will stay on the notification page until the user views it.
Frontend: React, Material UI
Backend: Nodejs, Expressjs
Database: MongoDB
ObjectDB: Minio
git clone https://github.com/ShifatJahanShifa/Basic-StackOverflow.git
cd Basic-StackOverflow
Frontend:
cd client
npm install
Backend:
cd server
npm install
Frontend:
npm start
Backend:
node index.js
Alhamdulillah I have successfully converted the Monolithic Basic-Stackoverflow to Distributed Basic-Stakoverflow. According to the requirement:
- Nginx server is used as reverse proxy server
- Server side code is divided into three services- user service, post service, notification service
- Inter service communication is established
- The three service have three different database associated with them
- Three services, three associated databases, minio all are orchestrated in docker-compose.yml file
- Additionaly, i have containerized frontend separately but have not orchestrated.
git clone https://github.com/ShifatJahanShifa/Basic-StackOverflow.git
cd Basic-StackOverflow
Frontend:
cd client
npm install
Backend:
Must have docker installed
Frontend:
cd client
npm start
Backend:
docker-compose build
docker-compose up