Welcome to YUKI MANGA, a comprehensive manga exploration platform developed with React, Tailwind CSS, MangaDex API, Node.js, Express.js, and MongoDB. This project was an exciting journey that involved overcoming challenges, implementing innovative solutions, and leveraging cutting-edge technologies.
|
|
|
|
YUKI MANGA is your ultimate destination for immersive manga exploration! Discover, read, and manage your favorite manga seamlessly with this cutting-edge Manga App. Developed with a tech stack that includes React for the frontend, Tailwind CSS for styling, and Node.js and Express.js for the backend, this project is designed to offer a visually captivating and feature-rich experience for manga enthusiasts.
Discover Manga: Explore a vast collection of manga from various genres.
Read Manga: Immerse yourself in an unparalleled reading experience with a user-friendly reader.
Manage Reading List: Create and organize your reading list. Keep track of manga you're currently reading and those on your wishlist.
Secure Account: User authentication ensures the security of your account and reading preferences.
The project is organized into different modules, each serving a specific purpose:
Frontend: The user interface built with React and styled with Tailwind CSS.
Backend: An efficient serverless backend for manga website, offering user authentication, data storage, and reading list functionalities.
Proxy Server: A custom proxy server for manga websites using mangaDex API, serving images and resources efficiently using Netlify serverless functions.
Direct API Access: The MangaDex API has strict anti-abuse policies, including not sending CORS responses for external websites and serving incorrect responses for hotlinked images.
Proxying API Requests: Direct access to the MangaDex API was not possible due to anti-abuse policies, necessitating the development of a custom proxy server.
Cold Start Time: Initially, setting up the proxy server on Render resulted in significant delays due to cold start times.
Image Processing Performance: Processing large images caused serverless functions on Netlify to exceed their execution time limit.
Custom Proxy Server: Built a custom proxy with Netlify's serverless function to handle user requests and image fetching from the MangaDex API while adhering to the platform's anti-abuse policies.
Netlify Serverless Functions: Leveraged Netlify's serverless functions for efficient and scalable solutions.
Stream Processing: Implemented stream processing to optimize image processing within the serverless function's execution time limit.
Caching: Implemented caching mechanisms using memory-cache
to improve performance and reduce response times.
Clone the repositories:
git clone https://github.com/danielasakpa/Manga_Website.git
git clone https://github.com/danielasakpa/Netlify-Serverless-Manga-Server
git clone https://github.com/danielasakpa/Netlify-Serverless-Manga-Proxy
Set up environment variables:
Create a .env
file in the root directory of the project and set the following variables:
REACT_APP_MANGA_SERVER_URL=http://localhost:9999
REACT_APP_PROXY_SERVER_URL=http://localhost:7777
These variables specify the Manga Server and Proxy Server URLs for development.
Run the applications:
Manga Server (Backend server for authentication and data management):
cd Netlify-Serverless-Manga-Server
npm install
netlify dev
This will run the server locally, listening on http://localhost:9999
.
Proxy Server (Server to handle requests to the MangaDex API and serve manga images):
cd Netlify-Serverless-Manga-Proxy
npm install
netlify dev
This will run the proxy server locally, listening on http://localhost:8888
.
YUKI MANGA (React Frontend):
cd Manga_Website
npm install
npm start
Explore and Contribute:
Feel free to explore the app and contribute to its development. If you encounter any issues or have suggestions, please open an issue.
Explore the MangaDex API documentation for more details on integrating and working with the MangaDex API.
Explore the Netlify-Serverless-Manga-Proxy repository to understand the custom proxy server's inner workings and contribute to its development.
Explore the Netlify-Serverless-Manga-Server repository for insights into the user authentication and data management server and contribute to its enhancement.
If you'd like to contribute to YUKI MANGA, please follow these guidelines:
This project is licensed under the MIT License.