If you are a Computer Science student and want to improve your programming skills, you can start this project. This project will help you to improve your programming skills. You can do this project in your summer holiday. Reach me out, I will follow you, and help you to improve your programming skills. I will update the README.md file from time to time. You can follow the README.md file for the project requirements. If you have any questions for me or https://github.com/serhatbsts/ you can ask.
List of developer students participating in the program:
- Murat Tasdemir : (MURAT_TASDEMIR_PROGRESS.md)
- Serhat Bestas : (SERHAT_BESTAS_PROGRESS.md)
Project Definition: The user has an account for managing his economy, he can see his balance, transactions, and other information about his account.
-
The User can see his account information in the account page. For example, when the user triggers this api: getAccountInfo, he will get his account information. Money in the account, and other information about his account. -Create, Edit, Delete, and update user info.
-
Add account, delete account, update account.
-
Add money to his account, and withdraw money from the account.
-
Add the required APIs for the above requirements
-
Keep simple,
-
Create two tables, one for user, one for account. Keep OneToOne relation between them User and Account.
https://www.baeldung.com/jpa-one-to-one
https://www.youtube.com/watch?v=Svpcn5wJ8CU
https://www.youtube.com/results?search_query=one+to+one+relationship+hibernate
-
Use whatever database you want.
-
Use spring boot, spring data jpa, hibernate, mysql, lombok, swagger, spring boot test, junit, mockito, mapstruct, etc.
https://www.youtube.com/watch?v=aariHjpng90
- Dockerized the application. Create a docker file for the application.(Important: First you need Dockerized the app)
https://www.docker.com/blog/kickstart-your-spring-boot-application-development/
https://www.youtube.com/watch?v=3SNKdr3f9Io
https://www.youtube.com/watch?v=MV4o_b6vt0g
https://www.youtube.com/watch?v=cH5FRwR0fC4
-
Create a README.md file for the application. Write the steps for running the application, and the APIs for the application.
-
Follow Clean Code principles.
https://www.youtube.com/watch?v=7m88T8-96X4
https://app.pluralsight.com/library/courses/java-se-17-best-practices/table-of-contents
https://app.pluralsight.com/paths/skill/java-coding-practices
https://www.freecodecamp.org/news/clean-coding-for-beginners/
https://www.youtube.com/watch?v=DoK3-9V5HRE
https://www.youtube.com/watch?v=q2B8iI68mhI&list=PLzJgCLOkO5X05JOnHoAbt4ge8alnRs9n1
- Follow Solid principles.
https://www.youtube.com/watch?v=xk_q9PbJdK4&list=PLlekUqrQSpoKlmjb0ZQHm1MDT0zTrf_0b
https://www.youtube.com/watch?v=jpjHLYVTo-M&t=466s
https://www.youtube.com/watch?v=VVRCrZsvtP8
https://www.youtube.com/watch?v=gdjcKwWxe08
https://www.youtube.com/watch?v=pdtpWYNBzqM
- Use git for version control. Create a repository in GitHub, and share the link with me. Use branches for development,and create a pull request to master branch for review. Send me the PR link for review. Without PR and review you can't merge to a master branch. Follow the review comments
-
Follow clean git history for the project. Write good commit messages. Make sure that the commit messages are clear and understandable.
-
Use the best practices for the project. Use the best practices for the project structure, naming conventions, etc.
-
Unit test the application. Write unit tests for the application. Use Junit, Mockito,AssertJ for unit testing. and add Integration test the application.(Integration Test is optional-However it would be nice if you can add integration tests)
https://www.youtube.com/watch?v=u6QfIXgjwGQ
https://www.youtube.com/watch?v=Geq60OVyBPg
https://www.youtube.com/watch?v=jqwZthuBmZY&list=PL82C6-O4XrHcg8sNwpoDDhcxUCbFy855E
https://www.youtube.com/watch?v=vZm0lHciFsQ
https://www.youtube.com/watch?v=Zi67qUHbq-c
https://www.youtube.com/watch?v=uMs4cLytLdw
https://www.youtube.com/watch?v=p71it7RcXtU
https://www.youtube.com/watch?v=UgXiWwb47VA
https://www.youtube.com/watch?v=YJ5APRPHNfs
https://www.youtube.com/watch?v=erp-7MCK5BU
https://www.youtube.com/watch?v=41Ry2ojnJFM
- Follow Rest api naming conventions. https://restfulapi.net/resource-naming/
https://www.youtube.com/watch?v=vCODdVCvrxc
https://www.youtube.com/watch?v=60F8rzP5nQo
https://www.youtube.com/watch?v=SBeG6cl8BlA
-
Use Swagger for API documentation. Create a swagger documentation for the application.
-
Occasionally you can meet with me to discuss the project.
-
You can ask any question about the project.
-
End of project you should present the project to me. 10-15 min presentation with english language.
-
End of project we can discuss to add new features to the project.