Project 3
| Title |
Type |
Duration |
Creator |
| Unit 3 project |
Unit Project |
5 days |
Suresh Sigera |
Here’s your chance to put all that you have learned about Java, OOP, Concurrency, Spring, and Kafka into practice.
Your REST API must comply with the following requirements:
- Persist at least three models.
- Configure environment settings using Spring Profiles.
- Integrate Apache Kafka for messaging and multithreading for concurrent processing.
- Implement at least one API endpoint with complete CRUD operations (create, read, update, delete).
- Additional API endpoints can perform CRUD tasks based on the business use case.
- Follow REST conventions for CRUD routes exposed in the API.
- Handle exceptions gracefully, providing appropriate error messages to the user.
General Requirements
Regardless of the option you choose, follow these steps:
- Avoid coding in the main branch during development; use different branches.
- Adhere to
KISS (Keep It Simple, Stupid) and DRY (Don’t Repeat Yourself) principles.
- Structure your application using the MVC design pattern, with separate controllers and services.
- Use a Test-Driven Development (TDD) approach: write tests first, then code to pass the tests, and refactor as necessary.
- Document each method you develop with Javadoc comments and inline comments. Avoid submitting unused or “dangling” code.
- Properly format your code for readability.
- Give credit to those who helped you, such as instructors or classmates, by linking to their public GitHub profiles.
- Cite any external sources you used, including URLs and how they helped you.
Example Javadoc
/**
* This method is used to add two integers.
* @param numA This is the first parameter to addNum method
* @param numB This is the second parameter to addNum method
* @return int This returns the sum of numA and numB.
*/
public int addNum(int numA, int numB) {
return numA + numB;
}
REST API Documentation Example
| Request Type |
URL |
Functionality |
Access |
| POST |
/auth/users/login/ |
User login |
Public |
| GET |
/api/categories/ |
Get all categories |
Private |
Necessary Deliverables
- Git Repository: Hosted on GitHub and made public.
- Commits: Around 170 commits (or more), documenting your development process from start to finish.
- README.md: Including:
- Project title and description.
- Tools and technologies used.
- General approach taken.
- Unsolved problems or major hurdles.
- Links to user stories, ERD diagram, and planning documentation.
- Installation instructions for dependencies.
Submission
- Create a new repository on your personal GitHub account.
- Submit your project as an issue to the designated repository:
- 👉 Submit Issue Here
Asking for Help
- Use GitHub issue tickets to ask technical questions.
- Format issues as follows:
- What you tried.
- What you expected to happen.
- What happened instead.
- Link to your repo and specific lines of code.
- Notify the main Slack channel when you submit an issue.
Useful Resources
- Java API
- ERD Tool
- Spring Framework Documentation
Presentations
- Attend all project presentations and engage with your peers. You’ll have 15 minutes to present your project, covering:
- What you would do differently.
- What you are most proud of.
- What you would do next.
- How you planned your project.
- What you learned.
Plagiarism
- Review the plagiarism policy and ensure your work is original. Seek help if needed and do not copy from others or submit solution branches as your own work.
By completing this project, you’ll gain practical experience with the material covered in class, preparing you for real-world coding challenges and technical interviews.