Une application web de prise de notes collaborative avec notifications en temps réel.
backend-notes-collab/
│
├── controllers/
│ └── noteController.js
│ └── notificationController.js
│
├── models/
│ └── Note.js
│ └── Notification.js
│
├── routes/
│ └── noteRoutes.js
│ └── notificationRoutes.js
│
├── app.js
└── server.js
└── swagger.js
frontend-notes-collab/
src
│
├── app/
│ └── page.tsx
│ └── notes/[id]/page.tsx
│ └── page.tsx
├── components/
│ └── Notification.tsx
│ └── CusorOverlay.tsx
│ └── NoteCard.tsx
│ └── ToolBar.tsx
├── lib/
│ └── api.ts
├── store/
│ └── noteStore.ts
│ └── notificationStore.ts
│ └── userStore.ts
│
├── types/
│ └──index.ts
│
└── tailwind.config.js
- ✍️ Création, édition et suppression de notes
- 🧠 Recherche de notes par titre ou contenu
- 🔔 Notification en temps réel de la dernière modification
- 👥 Support multiauteurs
- ⏱️ Affichage des notifications toutes les 5 secondes
cd backend-notes-collab
npm install
npm startCrée un fichier .env :
MONGODB_URI=mongodb://localhost:27017/notes
PORT=4000
FRONTEND_URL=http://localhost:3000
cd frontend-notes-collab
npm install
npm run devConfigure /lib/api.ts pour pointer vers ton backend local :
import axios from 'axios';
const api = axios.create({
baseURL: 'http://localhost:4000/',
});
export default api;- Description : Récupère toutes les notes.
- Réponse :
200 OK
[{ "_id": "...", "title": "...", "content": "...", "author": "...", "tags": [...] }]- Description : Récupère une note spécifique.
- Body :
{
"title": "Titre",
"content": "Contenu",
"tags": ["tag1", "tag2"],
"author": "Auteur"
}- Met à jour une note et génère une notification.
- Description : Récupère les notifications.
- Réponse : Liste des notifications les plus récentes.
Développé par DOHA PRIMAEL – Génie logiciel.
- Backend : Express, Mongoose
- Frontend : Next.js 15, TailwindCSS, Zustand
- Base de données : MongoDB
- **SOCKECT