Welcome to the Anime Films web application! This project focuses on building the server-side component of a comprehensive platform that provides users with access to detailed information about various anime films, directors, and genres. It aims to create a robust and user-friendly API that supports various features for anime enthusiasts.
- Anime Film Information: Access a database of anime films with details about their descriptions, genres, directors, and whether they are featured.
- Genre and Director Details: Retrieve information about specific genres and directors.
- User Authentication: Users can sign up, log in, and manage their accounts securely.
- Profile Management: Users can update their personal information, including name, email, and date of birth.
- Favorite List: Users can create and maintain a list of their favorite animes, adding and removing titles as they wish.
- User Deregistration: Allow users to delete their accounts if they choose to deregister.
- Server: Node.js with Express for building the RESTful API.
- Database: MongoDB Atlas for storing and managing data, modeled with Mongoose.
- Middleware: Utilizing body-parser for reading request data, morgan for logging, and other necessary middleware modules.
- Testing: Postman for testing the API endpoints.
- Security:
- User Authentication and Authorization: Using
bcryptfor hashing passwords,jsonwebtokenfor creating and verifying JSON Web Tokens, andpassportalong withpassport-jwtandpassport-localfor implementing authentication strategies.
- User Authentication and Authorization: Using
- Deployment: Heroku for hosting and deploying the application.
- Source Control: API source code is deployed to a publicly accessible platform like GitHub.
- Development: Includes data validation logic, adheres to REST architecture, provides anime information in JSON format, and ensures error-free JavaScript code.
- Documentation: JSDoc used for documentation.
Open your terminal and run the following.
git clone https://github.com/TheaWin/anime-eiga/git
- URL:
/users - HTTP Method:
POST - Request Body Data Format: A JSON object holding data about the user to add, structured like:
{ "username": "JohnDoe123", "name": "John Doe", "email": "john.doe@example.com", "password": "securedpassword", "birthday": "12 Dec 2000" } - Response Body Data Format: A JSON object holding data about the user that was added, including an ID:
{ "id": "1234", "username": "JohnDoe123", "name": "John Doe", "email": "john.doe@example.com", "favoriteAnime": "My Neighbor Totoro" }
- User Login:
POST /login - Return a list of ALL animes to the user:
GET /anime - Return data about a single anime by title:
GET /anime/[name] - Return data of a list of animes by genre:
GET /anime/genre/[genreName] - Return data about a director by name:
GET /anime/directors/[directorName] - Update username info:
PUT /users/[username] - Add an anime to the user's list of favorites:
POST /users/[username]/[name] - Remove an anime from the user's list of favorites:
DELETE /users/[username]/[name] - User deregistration:
DELETE /users/[username]
Thea Win - mstheawin@gmail.com

