{"id":14235395,"url":"https://github.com/mangaki/mangaki","last_synced_at":"2025-08-10T23:31:30.698Z","repository":{"id":3120350,"uuid":"48501368","full_name":"mangaki/mangaki","owner":"mangaki","description":"Site de recommandation de mangas et d'anime","archived":false,"fork":false,"pushed_at":"2023-03-20T21:04:49.000Z","size":14270,"stargazers_count":133,"open_issues_count":113,"forks_count":35,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-08-21T21:26:53.981Z","etag":null,"topics":["anime","hacktoberfest","recommendation-engine","visualizing-anime-embeddings"],"latest_commit_sha":null,"homepage":"https://mangaki.fr","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mangaki.png","metadata":{"files":{"readme":"README-fr.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSES/AGPL-3.0-only.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-12-23T16:55:03.000Z","updated_at":"2024-08-13T17:06:59.000Z","dependencies_parsed_at":"2023-07-05T21:01:52.995Z","dependency_job_id":null,"html_url":"https://github.com/mangaki/mangaki","commit_stats":{"total_commits":990,"total_committers":35,"mean_commits":"28.285714285714285","dds":0.5484848484848485,"last_synced_commit":"47f8d0ed03bd54ef55a013d2831008337e11a051"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangaki%2Fmangaki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangaki%2Fmangaki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangaki%2Fmangaki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mangaki%2Fmangaki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mangaki","download_url":"https://codeload.github.com/mangaki/mangaki/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229474378,"owners_count":18078547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","hacktoberfest","recommendation-engine","visualizing-anime-embeddings"],"created_at":"2024-08-20T21:01:52.086Z","updated_at":"2024-12-13T00:30:45.573Z","avatar_url":"https://github.com/mangaki.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Mangaki\n=======\n\n[![CircleCI](https://circleci.com/gh/mangaki/mangaki.svg?style=svg)](https://circleci.com/gh/mangaki/mangaki)\n[![Codecov](https://img.shields.io/codecov/c/github/mangaki/mangaki.svg)]()\n\nJe suis le manuel d'installation de Mangaki. Vous ne pouvez pas savoir comme ça me fait plaisir que vous me lisiez !\n\nMangaki est [sous licence AGPLv3](https://en.wikipedia.org/wiki/Affero_General_Public_License).\n\n\nComment contribuer ?\n--------------------\n\nQue vous soyez simple otaku, data expert, codeur Python, passionné d'algo, data scientist ou designer, vous pouvez contribuer à Mangaki ! Quelques pistes sont sur le [wiki](https://github.com/mangaki/mangaki/wiki), mais aussi dans le fichier [CONTRIBUTING.md](./CONTRIBUTING.md) !\n\n\nPrérequis\n---------\n\n- 3.4 ≤ Python ≥ 3.6\n- 9.3 ≤ PostgreSQL ≤ 10\n- 4.0.0 ≤ Redis ≤ 4.0.2\n\nSi vous n'avez jamais fait de Django, je vous renvoie vers [leur super tutoriel](https://docs.djangoproject.com/en/1.9/intro/tutorial01/).\n\n\nConfigurer PostgreSQL\n---------------------\n\nVous allez avoir besoin d'un utilisateur qui a accès à la base de données. La\nfaçon la plus simple de faire ça est simplement de créer un compte qui a le\nmême nom que votre nom d'utilisateur, qui peut créer des bases de données, et\nqui est un super-utilisateur (pour CREATE EXTENSION) :\n\n    sudo -u postgres createuser --superuser --createdb $USER\n\nVous aurez besoin de l'utilitaire `pwgen` pour générer un mot de passe\naléatoire lors de la configuration.\n\nEnsuite, vous pouvez créer la base de données et ajouter les extensions\nrequises :\n\n    createdb mangaki\n    psql -d mangaki -c \\\n        \"create extension if not exists pg_trgm; \\\n         create extension if not exists unaccent\"\n\n\nLancer un serveur de développement\n----------------------------------\n\nPremièrement, copiez la configuration. Les paramètres par défaut sont censés\nmarcher, donc vous ne devriez pas avoir besoin de changer quoi que ce soit :\n\n    cp mangaki/settings{.template,}.ini\n\nEnsuite, vous pouvez installer l'environnement de Django :\n\n    poetry install\n    poetry shell\n    ./mangaki/manage.py migrate\n    ./mangaki/manage.py runserver\n\nSi vous souhaitez mettre en production une instance de Mangaki, le fichier de\nconfiguration est un peu plus complexe - regardez dans `settings.template.ini`\net `mangaki/settings.py` pour un aperçu des options utiles.\n\n\nRemplir la base de données\n--------------------------\n    \n    cd mangaki\n    ./manage.py migrate\n    ./manage.py loaddata ../fixtures/{partners,seed_data}.json\n    ./manage.py ranking # Compute cached ranking information. This should be done regularly.\n    ./manage.py top --all # Store data for the Top20 page. This should be done regularly.\n\nVoilà ! Vous avez une installation de Mangaki fonctionnelle.\n\n\nLancer les tests\n----------------\n\n    poetry shell\n    py.test mangaki/\n\nCeci va lancer les [doctests](https://docs.python.org/3.8/library/doctest.html) et les tests unitaires contenus dans chaque application avec un dossier `tests`.\n\nPour calculer la couverture de test, il faut plutôt faire:\n\n    coverage run ./mangaki/manage.py test --with-coverage --cover-package=mangaki,irl --cover-html\n\nAinsi, vous aurez un dossier `cover` qui contiendra les informations de couverture en HTML.\n\n\nInstallation facile (Vagrant)\n-----------------------------\n\nVous devez installer [Vagrant](https://www.vagrantup.com/downloads.html).\n\n    vagrant up\n    vagrant ssh\n    ./manage.py runserver 0.0.0.0:8000\n\nVotre machine virtuelle est maintenant prête.\nVous pouvez utiliser Mangaki à l'adresse `app.mangaki.dev:8000` (si vous avez le plugin `vagrant-hostsupdater`) ou `192.168.33.10:8000`.\n\nPour plus de détails, lisez le script `provisioning/bootstrap.sh` qui s'occupe de mettre en place la machine.\n\n:warning: **Attention** :warning: : L'installation vous prendra environ _3 Gio_, une fois terminée. C'est en raison principalement de l'image Debian qui est téléchargée puis installée dans la machine virtuelle.\n\n\nRemarques utiles\n----------------\n\nSi vous vous rendez sur la page des mangas, la troisième colonne chargera en boucle. C'est parce que le Top Manga est vide, pour des raisons intrinsèques à [`ranking.py`](https://github.com/mangaki/mangaki/blob/master/mangaki/mangaki/management/commands/ranking.py#L9).\n\nSi vous obtenez des erreurs 400 lorsque vous mettez Mangaki en production (c'est-à-dire que `DEBUG = False`), faites bien attention à modifier les `ALLOWED_HOSTS` qui se trouvent dans votre configuration (`mangaki/settings/`) afin d'autoriser votre [FQDN](https://fr.wikipedia.org/wiki/Fully_qualified_domain_name) dedans.\n\nPour une mise en production, veillez à faire `./manage.py collectstatic` afin d'obtenir les assets: il est possible de changer le repertoire dans `mangaki/settings.py` (la variable `STATIC_ROOT`).\n\nMangaki a été testé et fonctionne parfaitement avec NGINX et Gunicorn.\n\n\nNous contacter\n--------------\n\nEn cas de pépin, [créez un ticket](https://github.com/mangaki/mangaki/issues) ou contactez-moi à vie@jill-jenn.net.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmangaki%2Fmangaki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmangaki%2Fmangaki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmangaki%2Fmangaki/lists"}