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.
Clone the repository.
git clone git@github.com:tyronejosee/project_fandomhub_api.gitCreate a virtual environment (Optional, only if you have Python installed).
python -m venv envActivate the virtual environment (Optional, only if you have Python installed).
env\Scripts\activateNotes:
(env)will appear in your terminal input.
Install dependencies for your local environment, for testing, linter and pre-commit configs, etc. (Optional, only if you have Python installed).
pip install -r requirements/local.txtCreate a copy of the .env.example file and rename it to .env.
cp .env.example .envUpdate the values of the environment variables (Important).
Note: Make sure to correctly configure your variables before building the container.
Build your container; it will take time the first time, as Docker needs to download all dependencies and build the image.
Use the -d (detached mode) flag to start your containers in the background.
Use the --build flag if you have changes and need to rebuild.
docker compose up
docker compose up -d
docker compose up --buildStop the running containers (does not remove them).
docker compose stopStart previously created and stopped containers.
docker compose startShow container logs in real-time.
docker compose logs -fRestart a service with issues (Replace <service_name>).
docker compose restart <service_name>Remove your container.
docker compose downAccess the web service console that runs Django.
docker compose exec web bashInside the Django console, create the migrations.
python manage.py makemigrationsRun the migrations.
python manage.py migrateIf you need to be more specific, use:
python manage.py migrate <app_label> <migration_name>List all available migrations and their status.
python manage.py showmigrationsNote: Manually create the migration if Django skips an app; this happens because Django did not find the
/migrationsfolder.
Create a superuser to access the entire site without restrictions.
python manage.py createsuperuserLog in to admin:
http://127.0.0.1:8000/admin/Access Swagger or Redoc.
http://127.0.0.1:8000/api/schema/swagger/
http://127.0.0.1:8000/api/schema/redoc/Check the creation of migrations before creating them.
docker compose exec web python manage.py makemigrations usersNote: Checking migrations before their creation is necessary to avoid inconsistencies in user models.
Access the PostgreSQL console.
docker compose exec db psql -U postgres -d fandomhub_dbList all the tables in the database.
\dtShow the detailed structure of a specific table.
\d <table_name>Create a backup of your database (Optional).
docker compose exec web python manage.py dumpdata > backup.jsonLoad the created backup if needed (Optional).
docker compose exec web python manage.py loaddataAccess the Redis console.
docker compose exec redis redis-cliRetrieve all keys.
KEYS *Delete a key from cache.
DEL <key_name>Delete all keys.
FLUSHALLGenerate translation files for the languages.
django-admin makemessages -l ja --ignore=env/*
django-admin makemessages -l es --ignore=env/*Use --ignore to exclude specific directories from translation.
Compile translation files after making changes to translations.
django-admin compilemessagesThis project is under the Apache-2.0 license.