[x] The data of the application must be stored in a relational database. You need to identify the core domain objects and model their relationships accordingly. Database structure should avoid data duplication and empty data (normalize your database).
[x] Your repository must include two scripts – one to create the database and one to fill it with data.
Commits in the GitLab repository should give a good overview of how the project was developed, which features were created first and the people who contributed. Contributions from all team members must be evident through the git commit history! The repository must contain the complete application source code and any scripts (database scripts, for example).
[ ] Provide a link to a GitLab repository with the following information in the README.md file:
Project description;
Link to the hosted project (if hosted online);
Instructions on how to set up and run the project locally;
Besides all requirements marked as should and could, here are some more optional requirements:
[ ] Integrate your project with a Continuous Integration server (e.g., GitLab’s own) and configure your unit tests to run on each commit to your master branch;
[ ] Host your application's backend in a public hosting provider of your choice (e.g., AWS, Azure, Heroku);
General:
[x] Follow REST API design best practices when designing the REST API (see Appendix);
[x] Use tiered project structure (separate the application in layers);
[x] You should implement proper exception handling and propagation;
[x] Try to think ahead. When developing something, think – “How hard would it be to change/modify this later?”;
=================================== | | ===================================
Database:
[x] The data of the application must be stored in a relational database. You need to identify the core domain objects and model their relationships accordingly. Database structure should avoid data duplication and empty data (normalize your database).
[x] Your repository must include two scripts – one to create the database and one to fill it with data.
=================================== | | ===================================
Git:
Commits in the GitLab repository should give a good overview of how the project was developed, which features were created first and the people who contributed. Contributions from all team members must be evident through the git commit history! The repository must contain the complete application source code and any scripts (database scripts, for example).
[ ] Provide a link to a GitLab repository with the following information in the README.md file:
Project description;
Link to the hosted project (if hosted online);
Instructions on how to set up and run the project locally;
Images of the database relations (must);
=================================== | | ===================================
Optional Requirements:
Besides all requirements marked as should and could, here are some more optional requirements:
[ ] Integrate your project with a Continuous Integration server (e.g., GitLab’s own) and configure your unit tests to run on each commit to your master branch;
[ ] Host your application's backend in a public hosting provider of your choice (e.g., AWS, Azure, Heroku);
[x] Use branches while working with Git;
=================================== | | ===================================
Teamwork Guidelines:
Teamwork Guidelines.pdf
=================================== | | ===================================
Appendix:
[x] Guidelines for designing good REST API - https://florimond.dev/en/posts/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/
[x] Guidelines for URL encoding - http://www.talisman.org/~erlkonig/misc/lunatech%5Ewhat-every-webdev-must-know-about-url-encoding/
[x] Always prefer constructor injection - https://www.vojtechruzicka.com/field-dependency-injection-considered-harmful/
[x] Git commits - an effective style guide - https://dev.to/pavlosisaris/git-commits-an-effective-style-guide-2kkn
[x] How to Write a Git Commit Message - https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/
=================================== | | ===================================
Legend:
Must – Implement these first.
Should – if you have time left, try to implement these.
Could – only if you are ready with everything else give these a try.