Skip to content

🏢 Modern NFC-based attendance and access control system with modular monolithic architecture. Built with Django REST Framework, Celery integration, and multilingual support.

Notifications You must be signed in to change notification settings

josephsamijona/busko_guard2

Repository files navigation

BuskoGuard - Système de Gestion des Présences et Accès NFC 🏢

BuskoGuard Banner

🇫🇷 Documentation Française

📋 Table des Matières

🌟 Vue d'ensemble

BuskoGuard est une solution complète de gestion des présences et de contrôle d'accès, conçue avec une architecture monolithique modulaire. Le système utilise la technologie NFC pour un contrôle d'accès sécurisé et offre une gestion complète des présences, des congés et des rapports.

✨ Fonctionnalités Principales

  • 🔐 Authentification et autorisation avancées
  • 👥 Gestion complète des utilisateurs et départements
  • ⏰ Suivi des présences en temps réel
  • 🚪 Contrôle d'accès NFC sécurisé
  • 📅 Gestion des congés et absences
  • 📊 Rapports et statistiques détaillés
  • 🔔 Système de notifications en temps réel
  • 📱 Interface responsive moderne
  • 🌐 API RESTful complète
  • 🔄 Intégration Celery pour les tâches asynchrones

🏗️ Architecture

Structure du Projet

buskoguard/
├── 📁 attendance_system/        # Configuration projet
│   ├── 📄 settings.py          # Paramètres Django
│   ├── 📄 celery.py           # Configuration Celery
│   └── 📄 urls.py             # URLs principales
│
├── 📁 presence/                # Application principale
│   ├── 📁 api/
│   │   ├── 📄 views.py        # Vues API
│   │   ├── 📄 serializers.py  # Sérialiseurs
│   │   └── 📄 urls.py        # Routes API
│   ├── 📁 utils/
│   │   ├── 📄 nfc_utils.py    # Utilitaires NFC
│   │   └── 📄 attendanceutils.py # Utilitaires présence
│   ├── 📁 permissions/
│   │   └── 📄 custom_permissions.py # Permissions personnalisées
│   ├── 📄 models.py           # Modèles de données
│   ├── 📄 tasks.py           # Tâches Celery
│   └── 📄 signals.py         # Signaux Django
│
├── 📁 frontend/               # Interface utilisateur
│   ├── 📁 src/
│   │   ├── 📁 components/    # Composants React
│   │   ├── 📁 pages/        # Pages
│   │   └── 📁 services/     # Services API
│   └── 📄 package.json
│
├── 📄 requirements.txt        # Dépendances Python
└── 📄 manage.py              # Script Django

🚀 Installation

Prérequis

  • Python 3.13
  • MySQL 8.0
  • Node.js 16+
  • Redis (pour Celery)
  • Lecteur NFC compatible

Installation Pas à Pas

  1. Cloner le Repository
git clone https://github.com/josephsamijona/busko_guard2.git
cd busko_guard2
  1. Configurer l'Environnement Python
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
pip install -r requirements.txt
  1. Configurer MySQL
mysql -u root -p
CREATE DATABASE buskoguard;
CREATE USER 'buskoguard_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON buskoguard.* TO 'buskoguard_user'@'localhost';
FLUSH PRIVILEGES;
  1. Configuration Environnement Créer un fichier .env à la racine du projet:
DEBUG=True
SECRET_KEY=your-secret-key
DATABASE_URL=mysql://buskoguard_user:your_password@localhost/buskoguard
REDIS_URL=redis://localhost:6379/0
  1. Migrations
python manage.py makemigrations
python manage.py migrate
  1. Créer un Super Utilisateur
python manage.py createsuperuser
  1. Lancer Celery
celery -A attendance_system worker -l info
  1. Démarrer le Serveur
python manage.py runserver

📚 Documentation API

Points d'Accès Principaux

Authentification

POST /api/auth/token/           # Obtenir un token JWT
POST /api/auth/token/refresh/   # Rafraîchir le token

Gestion des Utilisateurs

GET    /api/users/              # Liste des utilisateurs
POST   /api/users/              # Créer un utilisateur
GET    /api/users/{id}/         # Détails utilisateur
PUT    /api/users/{id}/         # Modifier utilisateur
DELETE /api/users/{id}/         # Supprimer utilisateur

Présences

GET    /api/attendance-records/ # Liste des présences
POST   /api/attendance-records/ # Enregistrer présence
GET    /api/statistics/presence/ # Statistiques

🇬🇧 English Documentation

[Suite de la Documentation Française...]

⚙️ Configuration

Configuration NFC

# presence/utils/nfc_utils.py
NFC_SETTINGS = {
    'READER_PORT': '/dev/ttyUSB0',
    'BAUDRATE': 115200,
    'TIMEOUT': 2
}

Configuration Celery

# attendance_system/celery.py
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'

🤝 Contribution

  1. Fork le projet
  2. Créer une branche (git checkout -b feature/nouvelle-fonctionnalite)
  3. Commit les changements (git commit -m 'Ajout nouvelle fonctionnalite')
  4. Push vers la branche (git push origin feature/nouvelle-fonctionnalite)
  5. Créer une Pull Request

📦 Requirements.txt

Django==4.2
djangorestframework==3.14.0
djangorestframework-simplejwt==5.3.1
mysqlclient==2.2.1
celery==5.3.6
redis==5.0.1
channels==4.0.0
python-dotenv==1.0.1
Pillow==10.2.0
django-cors-headers==4.3.1
drf-yasg==1.21.7
django-filter==23.5

🇪🇸 Documentación en Español

📋 Tabla de Contenidos

🌟 Descripción General

BuskoGuard es una solución integral de gestión de asistencia y control de acceso, diseñada con una arquitectura monolítica modular. El sistema utiliza tecnología NFC para un control de acceso seguro y ofrece gestión completa de asistencia, permisos e informes.

✨ Características Principales

  • 🔐 Autenticación y autorización avanzadas
  • 👥 Gestión completa de usuarios y departamentos
  • ⏰ Seguimiento de asistencia en tiempo real
  • 🚪 Control de acceso NFC seguro
  • 📅 Gestión de permisos y ausencias
  • 📊 Informes y estadísticas detalladas
  • 🔔 Sistema de notificaciones en tiempo real
  • 📱 Interfaz responsive moderna
  • 🌐 API RESTful completa
  • 🔄 Integración Celery para tareas asíncronas

🇵🇹 Documentação em Português

📋 Índice

🌟 Visão Geral

BuskoGuard é uma solução completa de gestão de presença e controle de acesso, projetada com uma arquitetura monolítica modular. O sistema utiliza tecnologia NFC para controle de acesso seguro e oferece gestão completa de presenças, licenças e relatórios.

✨ Funcionalidades Principais

  • 🔐 Autenticação e autorização avançadas
  • 👥 Gestão completa de usuários e departamentos
  • ⏰ Monitoramento de presença em tempo real
  • 🚪 Controle de acesso NFC seguro
  • 📅 Gestão de licenças e ausências
  • 📊 Relatórios e estatísticas detalhadas
  • 🔔 Sistema de notificações em tempo real
  • 📱 Interface responsiva moderna
  • 🌐 API RESTful completa
  • 🔄 Integração Celery para tarefas assíncronas

🌐 Support International

Language Support
Français ✅ Principal
English ✅ Full Support
Español ✅ Full Support
Português ✅ Full Support

📧 Contact

Joseph Sami - GitHub

Project Link: https://github.com/josephsamijona/busko_guard2.git


Built with ❤️ by Joseph Sami

About

🏢 Modern NFC-based attendance and access control system with modular monolithic architecture. Built with Django REST Framework, Celery integration, and multilingual support.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages