Skip to content

GiannyPontat/flowly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager

Application web full-stack de gestion de tâches style Kanban.

Stack technique

Couche Technologies
Backend Java 17, Spring Boot 3, Spring Security, JWT
Base de données PostgreSQL 16, Spring Data JPA / Hibernate
Frontend Angular 17, Angular Material, TypeScript
DevOps Docker, Docker Compose, Nginx

Fonctionnalités

  • Authentification — inscription, connexion JWT, mot de passe oublié par email
  • Projets — création, paramétrage, gestion des membres (PROJECT_ADMIN / MEMBER)
  • Kanban — colonnes personnalisables, drag & drop des tâches et colonnes
  • Tâches — titre, description, priorité (LOW / MEDIUM / HIGH), assignation, statut
  • Invitations — inviter un utilisateur existant ou non-inscrit par email
  • Notifications — système de notifications in-app
  • Calendrier — vue calendrier des tâches (FullCalendar)
  • Thème — mode clair / sombre avec design tokens CSS
  • Rôles — USER / ADMIN au niveau applicatif

Architecture backend

controller/   → endpoints REST
service/      → logique métier
repository/   → accès base de données (Spring Data JPA)
entity/       → modèles JPA
dto/          → objets échangés avec l'API
mapper/       → conversions Entity ↔ DTO
security/     → filtre JWT, configuration Spring Security
config/       → beans applicatifs

API Endpoints

Auth

POST /api/auth/register
POST /api/auth/login
POST /api/auth/forgot-password
POST /api/auth/reset-password

Projets

GET    /api/projects
POST   /api/projects
PUT    /api/projects/{id}
DELETE /api/projects/{id}
GET    /api/projects/{id}/members
POST   /api/projects/{id}/members
DELETE /api/projects/{id}/members/{userId}

Tâches

GET    /api/tasks?projectId=
POST   /api/tasks
PUT    /api/tasks/{id}
DELETE /api/tasks/{id}
POST   /api/tasks/{id}/move

Colonnes Kanban

GET    /api/columns?projectId=
POST   /api/columns
PUT    /api/columns/{id}
DELETE /api/columns/{id}
PUT    /api/columns/reorder

Utilisateurs

GET    /api/users
PATCH  /api/users/me

Notifications

GET    /api/notifications
GET    /api/notifications/unread-count
PATCH  /api/notifications/{id}/read

Invitations

POST   /api/invitations

Compte démo

Champ Valeur
Email demo@taskmanager.com
Mot de passe demo123

Lancer avec Docker (recommandé)

docker-compose up --build

Variables d'environnement (optionnel)

Créer un fichier .env à la racine :

DB_USERNAME=taskmanager
DB_PASSWORD=taskmanager

# Resend (emails transactionnels)
RESEND_API_KEY=re_xxxxxxxxxxxx
RESEND_FROM=AppName <no-reply@tondomaine.com>

Lancer en développement

Prérequis

  • Java 17+
  • Maven 3.8+
  • Node 20+, npm
  • PostgreSQL 16 (ou via Docker : docker-compose up postgres)

Backend

cd backend
mvn spring-boot:run

Frontend

cd frontend
npm install
ng serve

Tests

# Backend (JUnit + Mockito)
cd backend
mvn test

# Frontend E2E (Cypress)
cd frontend
npx cypress open

Captures d'écran

img.png

Auteur

Développé par GiannyPontat.

About

Application web full-stack permettant aux utilisateurs de gérer leurs tâches (type mini Trello / Todo manager). Le projet est conçu pour démontrer des compétences recherchées chez un développeur Java junior : API REST avec Spring Boot Sécurité avec JWT Base de données relationnelle Frontend Angular Architecture propre

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors