This repository is for the SOEN 487 final project at Concordia University. You can find details about the contributors here.
The project is a full stack microservices application for sending and receiving messages between users. Our project is broken down into 3 services:
- Authentication service, served on http://vartanbeno.com:50001
- Messaging service, served on http://vartanbeno.com:50002
- Notification service, served on http://vartanbeno.com:50003
The project is currently hosted here, but it is highly encouraged to read the full project report before trying it out.
To start the application, we need to run the frontend and each microservice in the backend:
cd
into the client
folder and run:
npm install
npm start
The frontend will be served at http://localhost:3000/.
cd
into the server
folder. You will see one folder for each of the microservices. cd
into each of them and run the app.py
file:
python3 app.py
- The authentication service will be served at http://localhost:5000/.
- The messaging service will be served at http://localhost:8081/.
- The notification service will be served at http://localhost:8080/.
After running all the services and frontend, navigate to http://localhost:3000/.
If you are a new user, navigate the UI to register. Enter a valid email address, username and password. You will be sent a verification right away (though sometimes it can take a couple minutes). Navigate to your emails, click the link in the email, and you will be verified! Proceed to login.
At the current time of writing, the UI for the messaging service is incomplete. This is because the messaging service was not made compatible with the rest of the project and so much effort was put to get those services working, instead of the UI. The messaging service endpoints are still functional however, and we invite you to test them with Postman. The endpoints are defined in the project report. There are some endpoints to retrieve the list of users and your conversations, which might be useful to make requests on Postman.
You'll notice after sending some messages with Postman, the notifications will have been created. There is a notifications section on the UI where you can see all of your notifications.
The project report, which includes more detailed specifications, such as the specific endpoints of each microservice, can be viewed here.
This repository has class diagrams for each service, as well as their respective dependency diagrams. These diagrams can be viewed here.
- Giovanni Prattico - ID: 27316860
- Andres Augusto Nunez Zegarra - ID: 27194331
- Joel Dusablon Senécal - ID: 40035704
- Vartan Benohanian - ID: 27492049
- Login UI, Register UI, Verification UI
- Notification service
- Notification service testing
- Documentation, README documentation
- Services integration debugging
- Message service
- Message service UI
- Message service testing
- Powerpoint presentation
- Authentication service
- Authentication service testing
- Frontend debugging
- Project hosting
- JWT implementation across all services
- Notification service tweaks
- Refactoring of messaging service
- Documentation, README Documentation
- Image storing service
- Image storing service testing
- Powerpoint presentation
Notification tests need to be changed so they grab the token from the authentication service before making the tests
- The UI for the messaging service was not implemented because we were having CORS issues between the client and server. For a user to start a conversation, we were recquiring the receiver's user ID, which isn't intuitive, so we decided to scrap it.
- The image storing service was not implemented. The service would've required for it to communicate with the messaging service, but that wasn't accounted for.
This project is licensed under the MIT License - see the LICENSE file for details.