Keep track of your favorite anime shows with this full-stack MERN application! Anime Checklist is a CRUD-based web app that allows users to manage their anime watchlist with features like adding, updating, deleting, and marking anime as watched.
Anime Checklist is built using the MERN stack (MongoDB, Express.js, React, Node.js). It provides a seamless experience for anime enthusiasts to:
- Maintain a personal anime watchlist
- Add new anime entries
- Mark anime as watched
- Edit anime details (title, status, rating, notes)
- Remove anime from the list
- 📥 Add Anime: Include new anime titles to your checklist.
- ✅ Mark as Watched: Track your watching progress.
- 📝 Update Anime Info: Modify details like title, status, or rating.
- ❌ Delete Anime: Remove entries from your list.
- 🔁 Real-Time Updates: Dynamic UI with React.
- 🔌 RESTful API: Powered by Express.js and MongoDB.
- Frontend: React, Axios, Bootstrap/Material UI
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose
- API Testing: Postman, cURL
anime-checklist/
│
├── backend/ # Express + Node API Server
│ ├── models/ # Mongoose data schemas
│ ├── routes/ # API route handlers
│ ├── controllers/ # Logic behind API routes
│ ├── .env # Environment variables
│ ├── server.js # Entry point for backend
│ └── package.json
│
├── frontend/ # React Web App
│ ├── public/ # Static assets
│ ├── src/ # React source files
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Main application pages
│ │ ├── App.js # Main React app component
│ │ └── index.js # React entry point
│ └── package.json
│
└── README.md
- Node.js (v16 or higher)
- MongoDB Atlas account or local MongoDB instance
- Git
git clone https://github.com/your-username/anime-checklist.git
cd anime-checklistcd backend
npm installCreate a .env file in the backend directory with the following:
MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/animeDB
PORT=5000Start the backend server:
npm run devcd ../frontend
npm install
npm startThe React app will run at http://localhost:3000.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/anime |
Fetch all anime |
| POST | /api/anime |
Add new anime |
| PUT | /api/anime/:id |
Update anime details |
| DELETE | /api/anime/:id |
Delete anime from list |
POST /api/anime
{
"title": "Jujutsu Kaisen",
"status": "Watching",
"rating": 9
}The backend uses Jest and Supertest for unit, integration, and API endpoint testing.
- Go to the backend directory:
cd backend - Run all tests:
npm test - Run tests with coverage:
This will generate a coverage report in the
npm run test:coverage
backend/coverage/folder.
- Jest (unit/integration/API testing)
- Supertest (API endpoint testing)
- Unit Tests: Test controller logic with and without mocking the database.
- Integration Tests: Test the interaction between the API server and the database.
- API Tests: Test the API endpoints for correct request/response behavior.
After running the coverage command, a report will be generated. Example:
- 🔐 Add user login and authentication
- 🔍 Integrate with MyAnimeList or AniList API for autofill
- 🗂️ Add filters (e.g., completed, watching, dropped)
- 🎨 Support uploading cover images for anime
Abhinav Anand
GitHub: abhi293
This project is licensed under the MIT License.


