A Scrum project management solution for teams
You can see the demo here:https://scrum-management-frontend.onrender.com/https://scrum-management-frontend.onrender.com/
*Note: The host is a free instance and takes 30 seconds to start for the first render and then should work normally.
To see the app running with mock data, login with:
email: RobertClarke@test.com
pass: dbz28wg6Z5GJ8cE
You can view the backend repository here: https://github.com/bissbr01/scrum-management-backend
Command Project Managment consists of a decoupled frontend and backend, with several other 3rd party api's also being called.
The frontend is hosted by Render, who serves the static single page app via a global content delivery network. The frontend calls Auth0 to securely handle login and OAuth SSO. The Backend persists state information to an AWS RDS database and calls Sendgrid's email api for email notifications on colleague requests and Dicebear's avatar api for default avatar placeholders.
A relational database seemed like a strong option when I was architecting this project since there are many different objects which are deeply related to each other:
Since multiple users can belong to multiple projects which each have a team with numerous comments, issues, and notifications, this results in slow queries for the expensive larger calls. In the future, I'd like to explore read replicas of the database, sharding, and/or a Redis cache to speed up slow queries.
- User navigates to home url.
- Frontend redirects to Auth0 to handle OAuth federated login or direct login.
- If first login, a new user account is created in backend postgresdb
- Auth0 returns an access token and id token (both Json Web Tokens) to the frontend
- The frontend calls the backend via http API with the provided access token for authorization
- The backend looks up the access token's user can provides access to the requested resources if the user has the required authorization level.
This SPA frontend is built on top of the Create React App framework.
Fork the repo and install dependecies with npm install
.
To start the development server, use: npm start
.
Note: For the app to function, you will also need to fork and run the backend API found here.