Skip to content

Development of a Rest API using Spring Boot and Maven dependencies. Database modeling. User authentication through Spring Security. Development of CRUD controllers. Custom searches by various combined filters. Development of bidirectional relationships @manytomany. Sending emails using SendGrid. Project carried out as a Challenge in Alkemy

Notifications You must be signed in to change notification settings

matiasluca72/Disney-API-Alkemy

Repository files navigation

Disney-API-Alkemy

BACKEND - Java

Spring Boot (API) 🚀

Goal

Develop an API to explore the world of Disney, which will allow knowing and modifying the characters that compose it and understand in which films they participated. On the other hand, it must expose the information so that any frontend can consume it.

  • 👉 Use Spring Boot.
  • 👉 No need of Frontend.
  • 👉 Paths must follow a REST pattern.
  • 👉 Use Spring Security library.

Technical requirements

1. Database Modeling

  • Character: must have,
    • Image.
    • Name.
    • Age.
    • Weight.
    • Story.
    • Associated movies.
  • Movies: must have,
    • Image.
    • Title.
    • Creation date.
    • Rating (from 1 to 5).
    • Associated characters.
  • Genre: must have,
    • Name.
    • Image.

2. User Authentication

To make requests to subsequent endpoints, the user must have a token that will be given when authenticating. For this, the registration and login endpoints must be developed, which allow to obtain the token.
Endpoints in charge of authentication must be:

  • /auth/signin
  • /auth/signup

3. Characters List

List must show:
  • Image.
  • Name.
Endpoint must be:
  • /characters

4. Creation, Read, Update and Delete Characters (CRUD)

There should be the basic operations of creating, editing and deleting characters.

5. Character Details

All the character's attributes should be listed, as well as his movies.

6. Character Search

It should allow to search by name, and filter by age, weight or movies in which the character has participated. To specify the search term or filters, they must be sent as query parameters:
  • GET /characters?name=nombre
  • GET /characters?age=edad
  • GET /characters?movies=idMovie

7. Movies List

It must show only image, title and creation date fields.
Endpoint must be:
  • GET /movies

8. Movie details with its characters

It will return all movie fields along with a list of characters associated to such movie.

9. Creation, Update and Delete a Movie (CRUD)

There should be the basic operations of creating, editing and deleting movies.

10. Movie Search

It should allow searching by title, and filtering by genre. Also, allow to sort the results by creation date in ascending or descending order.
The search term, filter or sort must be specified as query parameters:
  • /movies?name=nombre
  • /movies?genre=idGenero
  • /movies?order=ASC | DESC

11. Email Sending

When registering on the site, the user should receive a welcome email. It is recommended, use of a third-party service such as SendGrid.

About

Development of a Rest API using Spring Boot and Maven dependencies. Database modeling. User authentication through Spring Security. Development of CRUD controllers. Custom searches by various combined filters. Development of bidirectional relationships @manytomany. Sending emails using SendGrid. Project carried out as a Challenge in Alkemy

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages