Skip to content

dohaab14/zadeet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zadeet

Zadeet est une application web de gestion de dépenses personnelles conçue pour suivre, catégoriser et analyser votre budget mensuel.

L'application repose sur une architecture conteneurisée séparant le Frontend (statique servi par Nginx), le Backend (API Python) et la Base de données (PostgreSQL).


Architecture Technique

Le projet est divisé en trois services Docker distincts :

  • Frontend : Interface utilisateur (HTML/CSS/JS) servie par Nginx (Port 80)
  • Backend : API REST développée en Python 3.11 (avec Uvicorn), accessible sur le port 8000
  • Database : Base de données PostgreSQL 15

Prérequis

  • Docker installé sur votre machine
  • Git pour cloner le projet
  • Remplir les variables du .env (réf à .env.exemple) : cp .env.example .env

Installation et Démarrage

1. Cloner le projet

git clone https://github.com/dohaab14/zadeet.git
cd zadeet

2. Lancer l'application

Utilisez Docker Compose pour construire les images et démarrer les conteneurs :

docker-compose up -d --build

3. Initialiser la Base de Données (Premier lancement uniquement)

Une fois les conteneurs lancés, vous devez initialiser les tables et les données de base :

docker exec -it backend_container python init_db.py

Utilisation Une fois l'application démarrée :

Application Web : http://localhost/

Documentation API (Swagger) : http://localhost:8000/docs (si configuré dans FastAPI)

Commandes Utiles

#Arrêter l'application
docker-compose down

#Voir les logs (en cas de problème)

# Pour le backend
docker logs -f backend_container

# Pour tous les services
docker-compose logs -f

Nettoyer l'environnement (repartir à zéro) Attention : cette action supprime toutes les données.

docker-compose down -v

Partie Kubernetes avec Rancher

Pour information, toutes nos ressources sont déployées dans le namespace : u-grp3

1. Vérifier les images Docker (amd64)

  • dohaab14/zadeet-backend:latest
  • dohaab14/zadeet-frontend:latest

2. Ajouter les secrets de la base de données

kubectl -n u-grp3 create secret generic zadeet-secrets --from-literal=DATABASE_USER=ÀREMPLIRE  --from-literal=DATABASE_PASSWORD=ÀREMPLIRE --from-literal=DATABASE_NAME=ÀREMPLIRE

3. Déployer les manifests k8s

/!\ faire la commande depuis le folder app
kubectl apply -R -f k8s/

4. Test de l'application

Récupérer l'IP pour le DNS kubectl get ingress -n u-grp3
Ajouter ceci dans /etc/hosts ou l'équivalent pour votre OS : IP zadeet.u-grp3.csc8567.org Ouvrir un navigateur et taper zadeet.u-grp3.csc8567.org

sinon : kubectl port-forward -n u-grp3 svc/frontend 8080:80

Structure du Projet

└──
    ├── docker-compose.yml
    ├── init_db.py
    ├── nginx.conf
    ├── requirements.txt
    ├── seed_db.py
    └── app/
        ├── schemas.py
        ├── api/
        │   └── routes_plafonds.py
        ├── backend/
        │   ├── Dockerfile
        │   ├── main.py
        │   ├── api/
        │   │   ├── back_routes_acc.py
        │   │   ├── back_routes_categories.py
        │   │   └── back_routes_transactions.py
        │   ├── db/
        │   │   ├── database.py
        │   │   ├── models.py
        │   │   └── schemas.py
        │   └── services/
        │       ├── services_accueil.py
        │       ├── services_categories.py
        │       ├── services_plafonds.py
        │       └── services_transactions.py
        ├── frontend/
        │   ├── Dockerfile
        │   ├── js/
        │   │   └── app.js
        │   ├── static/
        │   │   └── style.css
        │   └── templates/
        │       ├── categories.html
        │       ├── index.html
        │       └── transactions.html
        ├── k8s/
        │   ├── 01-configmap.yaml
        │   ├── 02-secret.yaml
        │   ├── ingress.yaml
        │   ├── backend/
        │   │   ├── 01-backend-deployment.yaml
        │   │   └── 02-backend-service.yaml
        │   ├── db/
        │   │   ├── 01-postegres-pvc.yaml
        │   │   ├── 02-postgres-deployment.yaml
        │   │   └── 03-postgres-service.yaml
        │   └── front/
        │       ├── 01-nginx-configmap.yaml
        │       ├── 02-frontend-deployment.yaml
        │       └── 03-frontend-service.yaml
        └── templates/
            ├── base.html
            ├── home.html
            └── navbar.html

Auteurs Zadeet Team – Développement Fullstack

Dernière mise à jour : Ajout de la partie Kubernetes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6