Welcome to the User Management System project - an epic open-source adventure crafted by the legendary Professor Keith Williams for his rockstar students at NJIT! π«π¨βπ«β This project is your gateway to coding glory, providing a bulletproof foundation for a user management system that will blow your mind! π€― You'll bridge the gap between the realms of seasoned software pros and aspiring student developers like yourselves.
Get ready to ascend to new heights with this legendary project:
Reflection Document: Submit a 1-2 page Word document reflecting on your learnings throughout the course and your experience working on this epic project. Include links to the closed issues for the 5 QA issues, 10 NEW tests, and 1 Feature you'll be graded on. Make sure your project successfully deploys to DockerHub and include a link to your Docker repository in the document - let your work speak for itself! πππ₯
Commit History: Show off your consistent hard work through your commit history like a true coding warrior. Projects with less than 10 commits will get an automatic 0 - ouch! π¬β οΈ A significant part of your project's evaluation will be based on your use of issues, commits, and following a professional development process like a boss - prove your coding prowess! π»ππ₯
Deployability: Broken projects that don't deploy to Dockerhub or pass all the automated tests on GitHub actions will face point deductions - nobody likes a buggy app! πβ οΈ Show the world your flawless coding skills!
This project requires effective time management and a well-planned strategy, but fear not - you've got this! Follow these steps to ensure a successful (and sane!) project outcome:
Select a Feature: Choose a feature from the provided list of additional improvements that sparks your interest and aligns with your goals like a laser beam. β¨βπ― This is your chance to shine!
Quality Assurance (QA): Thoroughly test the system's major functionalities related to your chosen feature and identify at least 5 issues or bugs like a true detective. Create GitHub issues for each identified problem, providing detailed descriptions and steps to reproduce - the more detail, the merrier! πππ΅οΈββοΈ Leave no stone unturned!
Test Coverage Improvement: Review the existing test suite and identify gaps in test coverage like a pro. Create 10 additional tests to cover edge cases, error scenarios, and important functionalities related to your chosen feature. Focus on areas such as user registration, login, authorization, and database interactions. Simulate the setup of the system as the admin user, then creating users, and updating user accounts - leave no stone unturned, no bug left behind! β π§ͺππ¬ Become the master of testing!
New Feature Implementation: Implement your chosen feature, following the project's coding practices and architecture like a coding ninja. Write appropriate tests to ensure your new feature is functional and reliable like a rock. Document the new feature, including its usage, configuration, and any necessary migrations - future you will thank you profusely! πβ¨ππ©βπ»β‘ Make your mark on this project!
Maintain a Working Main Branch: Throughout the project, ensure you always have a working main branch deploying to Docker like a well-oiled machine. This will prevent any last-minute headaches and ensure a smooth submission process - no tears allowed, only triumphs! ππ’β Stay focused, stay victorious!
Remember, it's more important to make something work reliably and be reasonably complete than to implement an overly complex feature. Focus on creating a feature that you can build upon or demonstrate in an interview setting - show off your skills like a rockstar! πͺππ
Don't forget to always have a working main branch deploying to Docker at all times. If you always have a working main branch, you will never be in jeopardy of receiving a very disappointing grade :-). Keep that main branch shining bright!
Let's embark on this epic coding adventure together and conquer the world of software engineering! You've got this, coding rockstars! ππβ¨