Skip to content

FandomHub (API): An API for managing and accessing anime and manga-related information, inspired by MyAnimeList. Built with Django and Django Rest Framework, PostgreSQL, SQLite, Redis, and Docker.

License

Notifications You must be signed in to change notification settings

tyronejosee/project_fandomhub_api

Repository files navigation

FandomHub - API

📚 Documentation

An API inspired by MyAnimeList, designed for retrieving detailed information about anime and manga. It provides access to titles, genres, ratings, and user reviews, allowing users to query and explore a wide range of anime and manga content.

python-version django-version django-version

⚙️ Installation

Clone the repository.

git clone git@github.com:tyronejosee/project_fandomhub_api.git

Create a virtual environment (Optional).

python -m venv env

Activate the virtual environment (Optional).

env\Scripts\activate

Install all dependencies.

pip install -r requirements/local.txt

Create an environment variable file .env.

SECRET_KEY=""
EMAIL_BACKEND=""
EMAIL_HOST=""
EMAIL_HOST_USER=""
EMAIL_HOST_PASSWORD=""
EMAIL_PORT=""
EMAIL_USE_TLS=""

Docker run.

(env) docker compose -f docker-compose.dev.yml up
(env) docker compose -f docker-compose.dev.yml up --build
(env) docker compose -f docker-compose.dev.yml stop
(env) docker compose -f docker-compose.dev.yml logs -f
(env) docker compose -f docker-compose.dev.yml start
(env) docker compose -f docker-compose.dev.yml restart <service>

Perform database migrations.

(env) docker compose -f docker-compose.dev.yml exec web bash
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations*
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate <app_label> <migration_name>
(env) docker compose -f docker-compose.dev.yml exec web python manage.py showmigrations

Note: Create the migrations in case Django skips any.

🚀 Usage

Create a superuser to access the entire site without restrictions.

(env) docker compose -f docker-compose.dev.yml exec web python manage.py createsuperuser

Log in to admin:

http://127.0.0.1:8000/admin/

Access to Swagger o Redoc.

http://127.0.0.1:8000/api/schema/swagger/
http://127.0.0.1:8000/api/schema/redoc/

🌍 Internationalization

Generate translation files for the languages.

(env) django-admin makemessages -l ja --ignore=env/*
(env) django-admin makemessages -l es --ignore=env/*

Use --ignore to exclude specific directories from translation.

Compile translation files after making changes to translations.

(env) django-admin compilemessages

🚨 Important Notes

Check the creation of migrations before creating them.

(env) docker compose -f docker-compose.dev.yml exec web bash
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations users
(env) docker compose -f docker-compose.dev.yml exec web python manage.py makemigrations
(env) docker compose -f docker-compose.dev.yml exec web python manage.py migrate

Note: Checking migrations before their creation is necessary to avoid inconsistencies in user models.

💾 PostgreSQL

(env) docker compose -f docker-compose.dev.yml exec web python manage.py dumpdata > backup.json
(env) docker compose -f docker-compose.dev.yml exec web python manage.py loaddata
(env) docker compose -f docker-compose.dev.yml exec db psql -U postgres -d fandomhub_db
(fandomhub_db=#) \dt
(fandomhub_db=#) \d <table>

💾 Redis

(env) docker compose exec redis redis-cli
(127.0.0.1:6379) keys *

⚖️ License

This project is under the Apache-2.0 license.

About

FandomHub (API): An API for managing and accessing anime and manga-related information, inspired by MyAnimeList. Built with Django and Django Rest Framework, PostgreSQL, SQLite, Redis, and Docker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages