Anidex

Anidex - Simple Online Anime Database

A simple website to find and list one's favourite anime, discover characters, anime staffs, genres, studios, add items and finally, discuss anything with others in forums!

Table of Contents

General Information

This project was our submission for CSE 216 Database Lab term project in Level 2/Term 2 at BUET CSE Undergrad. We are both avid anime watchers and fan of all things anime, so we thought, why not try and make an anime database? Thus we got into this project and tried to make a simple website where users can -

  • find and view anime and all related data
  • make list of watched anime
  • add new anime and other related data
  • discuss with one another in a forum

Main Technologies Used

Backend:

  • Postgresql - version 14.4
  • NodeJS - version 16.13
  • Express JS - version 4.18

Frontend:

  • Svelte JS - version 3.44

For convenience, backend guy thought of the name SNEP stack...

Features

Without signing up, a user can:

  • Use full text search in all anime, episode, character, genre, studio and personnel
  • View all anime, top rated anime and all related ratings
  • View anime by genres and studios
  • View anime episodes and related ratings
  • View anime staffs, characters, studios, see which anime they are related to
  • View the forum
  • View reviews of anime in the forum

After siging up, a user can furthermore:

  • Rate anime and episodes
  • Add anime to watchlist and favourite list
  • Add to database new anime, episoded, character, personnel, genre and studio with pictures as applicable
  • Participate in all discussion threads in the forum
  • Post reviews of anime in the forum
  • Edit their account information
  • Delete database entry if admin privilege is given to user

In the backend, there is

  • RESTful API with endpoints for various data and operations with authentication if necessary
  • Authentication with JWT
  • Secure password storage using Bcrypt
  • File upload and static hosting
  • Documentation of the RESTful API using Swagger, hosted in the backend server

Setup

We are using a ExpressJS RESTfull API server in the backend to serve the SvelteJS frontend website with the data from Postgres database.

  • Backend: To have the backend server up and running, please follow these instructions.
  • Frontend: You can set up the frontend by going through these steps.

Project Status

Project is: not being worked on anymore .

Room for Improvement

Room for improvement:

  • Use Postgresql prepared queries and functions in backend
  • Add linking of and throughout all Svelte pages in the frontend
  • Add extended addition features in the frontend
  • Possible cleanup of Postgres database structure
  • Possible use of Quill for Rich Text Editor in forum

Resources Used

  • This project was inspired by the fan-made user generated anime database Anidb and not-so-fan-made anime database MAL.
  • Razin Vaiya's Database lab project My Anime List was the one thing that directly encouraged us to create Anidex.
  • The backend was inspired by the RESTful API server idea of this Course.
  • The frontend was made using multiple tutorials and ideas, list of which can be found here.

Comprehensive list of all tutorials and other helpful resources are here.

Acknowledgements

We would like to specially give our heartfelt thanks to our honourable professors Dr. Abu Sayed Md. Latiful Hoque and Dr. A.K.M. Ashikur Rahman.

We would also like to express our heartiest gratitude to our project supervisor Mr. Mohammad Tawhidul Hasan Bhuiyan for the very important guidances and suggestions he gave us throughout the project.

We would like to give our heartfelt thanks to Sihat Afnan vaiya for his guidance starting the project and his help throughout the term. Without his starting pointers, we would not have managed to complete the project at all.

We are very much grateful to Razin Reaz vaiya for his team's awesome anime database project. It was this work that inspired us first to try and create a fan-made anime database. He also helped us getting our project started with valuable advices.

A special shoutout to this cat for helping us out anytime we needed. Check out his project, dude is one of the only two backend guys out of roughly 60 to use CPP 🤲 in backend. Thanks man!

Which lands us to this other project with CPP 🤲 backend - our one and only, the great Harmony developer team of Local Kiriyama and Lord Sadat had done amazing work for their project AND also helped us out a lot. Specially it was Local Kiriyama's suggestion that made us use SvelteJS for the frontend. Thanks guys! Please check out their project, Ashraf (Kiriyama) wrote a cpp http/2 server from scratch just for this project.

License

This project is licensed under GNU General Public License v3.0.

Top categories

Loading Svelte Themes