Your development team was asked to build a management system for a shepard. It will be used by the shepards to track which of their sheep has been shorn.
Unfortunately due to the team being understaffed, this project was left to the intern to complete and they have done a horrible job. They are FURIOUS! The account manager is in the conference room feeding the client donuts from the nearby bakery. The donut supply will be exhausted in 90 minutes. You need to have a working demo ready by then!
When the system is running the client expects to be able to:
- See a list of all sheep breeds
- From the list of breeds, see a list of all individual sheep of that breed
- See a list of all individual sheep
- Add a sheep to the herd
- Mark a sheep as sheared or unsheared
- Remove a sheep from the herd
What they CURRENTLY see: The system has errors when they try to start it and can get no further. When they last previewed the system, they complained that the logos seemed mis-sized and the actions on the sheep table were not aligned to the right.
- Study the error message - what is broken and why can't the system turn on?
- There may be multiple issues with the system that need to be fixed before it starts
- Once it starts, test each piece of functionality they listed in their expectations. Does it work?
This scenario is designed to help practice several skills that you will need working on development teams:
- Debugging
- Reading and troubleshooting code written by others
- Understanding a basic role-based authorization system
- Node 20.x+
- MongoDB 7+
(These are what the application was tested against, it may be possible to run on newer or older Node and MongoDB instances)
Working in the starter_code folder:
- Install required node packages (
npm i) - Copy the
.env-samplefile to.env - Update
.envwith the correct server addresses, credentials, and values - Update the secret value in
.env - Run the application with
npm run start. Note: The FIRST time you start the application, it will seed the database with sameple data. This may take some time.
If you want to reseed the database and/or set it back to the initial state:
- Stop the application if it is running
- Run
npm run reseedand it will force a reseed operation
Note: it will NOT reset the users.