In this guide, we'll walk through creating a project step by step. Let's imagine a scenario similar to popular project management tools like Jira or Asana. Each project can have multiple team members, which we'll call Contributors. So, there's a many-to-many relationship between projects and contributors.
Our goal is to build an API using Spring Boot that fetches a list of projects. We want this API to be flexible, so it can handle different requests. For example, we might want to get 10 projects at a time, specify the page number, page size, sorting order (ascending or descending), and sort the projects by their name, description, dates, or even by the names, mobile numbers, or email addresses of the contributors. We also want to include a search feature, where we can look up projects based on a specific text.
These parameters are optional, meaning if we don't specify them in the request, the API should return all projects.