Application web de gestion de tâches permettant de prioriser intelligemment son travail grâce à une combinaison de complexité, priorité et durée. Le calcul du coefficient pondéré met en avant les tâches rapides, simples et urgentes pour aider à prendre des décisions plus rapidement.
- Tableau de bord synthétique (tâches actives, en retard, terminées dans la semaine, répartition par catégorie).
- Formulaire de création/édition riche (catégories, tâches parentes, sliders de priorité/complexité/durée, notes).
- Authentification JWT avec pages de connexion/inscription.
- API Next.js (Pages Router) et base de données Postgres via Prisma.
- Interfaces responsive avec Tailwind CSS et composants Shadcn UI.
- Notifications email lors de la réception d’un feedback utilisateur (via EmailIt).
- Next.js 14 (Pages Router)
- React
- Tailwind CSS + Shadcn UI
- Prisma ORM + PostgreSQL
- Authentification JWT (
jsonwebtoken,bcryptjs) - Composants Radix UI, React Hook Form, date-fns, etc.
- Node.js 20.x (nvm recommandé)
- pnpm (Corepack activé) ou npm ≥ 10
- Accès à une base PostgreSQL (Supabase, Railway, local…)
-
Duplique
.env.example(si présent) ou crée un.envà la racine :DATABASE_URL="postgresql://user:password@host:5432/db?schema=public" DIRECT_URL="postgresql://user:password@host:5432/db?schema=public" JWT_SECRET="change-me" MIGRATION_API_KEY="dev-migration-key" CRON_SECRET="dev-cron-secret" NEXT_PUBLIC_CO_DEV_ENV="http://localhost:3000" EMAILIT_API_KEY="sk_live_xxx" # clé API EmailIt EMAILIT_FROM="Master Tasklist <no-reply@le-caribou.ca>" FEEDBACK_NOTIFICATION_EMAIL="info@le-caribou.ca"
Ajoute les éventuelles clés Supabase, Resend ou services tiers utilisés. Ne versionne jamais ce fichier.
-
Installe les dépendances :
pnpm install # ou npm install -
Initialise la base :
pnpm prisma db push # ou pnpm prisma migrate deploy si tu utilises des migrations -
(Optionnel) Charger des données de démonstration :
curl -X POST http://localhost:3000/api/migrate-data \ -H "X-Migration-Key: dev-migration-key"
pnpm dev
# puis ouvre http://localhost:3000Tests et lint :
pnpm lint- Publie ton code sur GitHub (
main). - Sur Railway :
- Crée un projet “Next.js”.
- Connecte le repo GitHub.
- Configure les variables d’environnement (mêmes valeurs que ton
.env). - Fournis une base PostgreSQL Railway ou garde Supabase via
DATABASE_URL. - Commandes par défaut : build
pnpm install && pnpm build, startpnpm start.
- Pour cPanel/serveur Node : installe Node 20, clone le repo, mets à jour
.env, exécutepnpm install,pnpm build, puispnpm startderrière un process manager (PM2/Passenger) avec proxy.
Les feedbacks envoyés via /api/feedback génèrent un email HTML adressé à FEEDBACK_NOTIFICATION_EMAIL via l’API EmailIt. Assure-toi :
- d’avoir un domaine d’envoi validé chez EmailIt,
- de définir
EMAILIT_API_KEYetEMAILIT_FROM, - d’adapter le destinataire si besoin.
En cas d’erreur côté EmailIt, l’envoi est simplement journalisé dans les logs serveur.
- Fork ou clone (
git clone https://github.com/collectifweb/master-tasklist.git). - Crée une branche (
git checkout -b feature/ma-fonctionnalite). - Commits (
git commit -m "feat: …"). - Push et ouvre une Pull Request.
Pense à ajouter une licence si tu souhaites préciser les conditions d’utilisation du projet.