fullstack fastapi vuejs price aggregator
1.0.0
Agrégateur de prix des supermarchés au Royaume-Uni via le web scraping. Ceci a été développé pour mon projet universitaire en tant que MVP donc certains aspects ne fonctionnent pas correctement. Je pourrais le mettre à jour à l'avenir.
Assurez-vous que Docker et Node.js sont installés.
docker-compose up --build -d . Le backend démarre et, lors de la première exécution, construira tous les conteneurs nécessaires, ce qui peut prendre quelques minutes.docker-compose exec backend bash .python manage.py createdb à partir du shell bash.python manage.py seeddb Notez que tous les mots de passe sont définis sur passwordcd dans le répertoire client, exécutez npm install qui installera les modules de nœuds requis.npm run serve qui servira l'interface client. | URL | Description |
|---|---|
| 0.0.0.0:8000/API | API JSON back-end |
| 0.0.0.0:8000/docs | Documentation de référence de l'API backend OpenAPI/Swagger générée |
| 0.0.0.0:8000/redoc | Documentation interactive alternative fournie par ReDoc |
| hôte local : 9527 | Application frontale VueJS à page unique |
Le backend comprend une CLI fortement inspirée de Dispatch de Netflix.
typer (même auteur que FastAPI) a été utilisé pour créer une CLI pour le projet et est accessible via manage.py.
Pour exécuter des commandes, vous aurez besoin d'un shell exécuté dans le conteneur backend avec :
docker-compose run backend bash
Pour voir toutes les commandes disponibles :
root@72293bee6b37:/app# python manage.py
Usage: manage.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
config Display application configuration.
createdb Creates an empty database.
createrole Add role to database.
createuser Create new user in the database.
develop Start a development server with reload.
dropdb Drop the existing database.
routes Display application routes and dependencies.
seeddb Add fake data to database.
shell Starts an interactive shell with app object imported.
root@72293bee6b37:/app# python manage.py routes
Application Endpoints
Path Methods Dependencies
----------------------------- --------- --------------------------------------------------------
/api/v1/users/ GET ['RoleChecker: Roles: admin,user']
/api/v1/users/ POST ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/roles PUT ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops GET ['RoleChecker: Roles: admin,user']
/api/v1/users/{id}/shops PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/ GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/ POST ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} GET ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/roles/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/ GET ['RoleChecker: Roles: admin,user']
/api/v1/shops/ POST ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} PUT ['RoleChecker: Roles: admin,user']
/api/v1/shops/{id} DELETE ['RoleChecker: Roles: admin,user']
/api/v1/shops/listings/ GET ['RoleChecker: Roles: admin,user']
/api/healthcheck GET []
python manage.py config
Application Configuration
Setting Value(s)
-------------------------- --------------------------------------------------------------------
APP_DIR /app/app
STATIC_DIR /app/app/static
EMAIL_TEMPLATES_DIR /app/app/static/email-templates/html
PROJECT_NAME Fastapi Backend
SERVER_HOST 0.0.0.0
CORS_WHITELIST ['http://localhost', 'http://localhost:8000', 'http://0.0.0.0:8000']
FASTAPI_ENV development
DEBUG False
LOG_LEVEL debug
FIRST_SUPERUSER [email protected]
FIRST_SUPERUSER_PASSWORD a5dbf43e07f4d19e5b73bc89a8f74
USERS_OPEN_REGISTRATION True
SECRET_KEY **********
JWT_AUTH_LIFETIME_SECONDS 604800
JWT_EMAIL_LIFETIME_SECONDS 3600
SMTP_USER [email protected]
SMTP_PASSWORD **********
SMTP_TLS False
SMTP_SSL False
SMTP_HOST mailhog
SMTP_PORT 1025
POSTGRES_USER postgres
POSTGRES_PASSWORD **********
POSTGRES_HOST postgres
POSTGRES_PORT 5432
POSTGRES_DB fastapi_backend







