MangaMatch is an recommendation engine aiming to help manga enthusiasts discover series tailored to their individual tastes.
- Multi-Manga Input: Allows users to input multiple manga titles they've enjoyed to generate more nuanced recommendations.
- Advanced Recommendation Algorithm: Leverages one-hot encoding for streamlined genre categorization, and applies cosine similarity metrics for accurate manga-to-manga comparisons across multiple atributes like genres and themes.
- Frontend: React
- Backend: Express.js on Node.js
- Database: MongoDB
- State Management: Redux (planned for future updates)
-
MongoDB: Beyond just basic CRUD operations, I learned about data modeling and schema design, specifically the challenges of handling hierarchical data. I've also done some data cleaning through MongoDB to prepare the database for vectorization.
-
Express and API Development: Strengthened my understanding of RESTful APIs using Express.js, incorporating middleware for logging and error-handling.
-
MERN Stack: Gained experience in full-stack development by integrating MongoDB, Express.js, React, and Node.js. This project is an excellent showcase of frontend-backend data flow and state management.
-
Linear Algebra Applications: Applied cosine similarity to develop an advanced recommendation algorithm based on vectorized attributes.
-
Project Management: Navigated the complexities of building a nuanced feature set while keeping an eye on performance, usability, and code quality.
-
Clone the repository:
git clone https://github.com/csiv23/MangaMatch.git
-
Navigate to the project directory:
cd MangaMatch
-
Install dependencies:
npm install cd client && npm install
-
Set up environment variables: Copy
.env.sample
to.env
and populate the necessary variables. -
Run the application:
npm run dev
- User rating-based recommendations
Feedback, bug reports, and pull requests are welcome. Feel free to check issues for any upcoming features or bugs to tackle.