https://github.com/delitamakanda/fanfiction
fanfiction api
https://github.com/delitamakanda/fanfiction
django django-rest-framework jwt-authentication python redis-cache rest-api
Last synced: 8 months ago
JSON representation
fanfiction api
- Host: GitHub
- URL: https://github.com/delitamakanda/fanfiction
- Owner: delitamakanda
- License: mit
- Created: 2018-02-20T09:53:10.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-02-05T13:42:37.000Z (over 1 year ago)
- Last Synced: 2025-02-05T14:34:23.600Z (over 1 year ago)
- Topics: django, django-rest-framework, jwt-authentication, python, redis-cache, rest-api
- Language: Python
- Homepage:
- Size: 34.8 MB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fanfiction
[](https://github.com/delitamakanda/fanfiction/actions/workflows/django.yml)
> A fanfic application in vue.js and django
### Demo Live App
[ionic app](https://fanfiction-fr.netlify.app/)
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
```
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
``` bash
# set an virtual env
python3 -m venv fanfiction
source fanfiction/bin/activate
pip install -r requirements-dev.txt
python3 manage.py migrate
python3 manage.py runserver
```
## Tests
``` bash
coverage run --source=api ---omit=*/migrations/* manage.py test
coverage report -m
```
## Asynchronous tasks
``` bash
celery -A backend worker -l info -B
```
## Translation
```bash
django-admin makemessages --ignore=venv/*
django-admin compilemessages
```
## Recommandation engine
```bash
>>> from api.models import Fanfic
>>> fanfic_1 = Fanfic.objects.get(id=1)
>>> fanfic_2 = Fanfic.objects.get(id=2)
>>> fanfic_3 = Fanfic.objects.get(id=3)
>>> fanfic_4 = Fanfic.objects.get(id=4)
>>> from api.recommender import Recommender
>>> print(fanfic_1)
Acchi Kocchi - Ben-To Crossover
>>> print(fanfic_2)
Jusqu'à ce que la mort nous sépare...
>>> print(fanfic_3)
Nature
>>> print(fanfic_4)
Elementary
>>> r = Recommender()
>>> print(r)
>>> r.fanfics_liked([fanfic_1, fanfic_2])
>>> r.fanfics_liked([fanfic_2, fanfic_3])
>>> r.fanfics_liked([fanfic_4, fanfic_1])
>>> r.fanfics_liked([fanfic_1, fanfic_3])
>>> r.fanfics_liked([fanfic_3, fanfic_4])
>>> r.suggest_fanfics_for([fanfic_1])
[, , ]
>>> r.suggest_fanfics_for([fanfic_2])
[, ]
>>> r.suggest_fanfics_for([fanfic_3])
[, , ]
>>> r.suggest_fanfics_for([fanfic_4])
[, ]
>>> r.suggest_fanfics_for([fanfic_4, fanfic_1])
[, ]
>>> r.suggest_fanfics_for([fanfic_1, fanfic_2])
[, ]
```
## Scraper
```bash
python3 fanfics/scraper.py ccs
python3 fanfics/scraper.py op
python3 fanfics/scraper.py marvel
python3 manage.py import_from_fanfiction_as_csv output_ccs.csv
python3 manage.py import_from_fanfiction_as_csv output_op.csv
python3 manage.py import_from_fanfiction_as_csv output_marvel.csv
```