Espace de travail collaboratif minimaliste pour vos notes, taches et wikis. Construit avec PHP, MySQL, et un editeur riche TipTap.
- Editeur riche -- TipTap avec titres, listes, taches, citations, blocs de code, liens, surlignage et couleurs
- Espaces de travail -- Creez, renommez et supprimez des espaces pour organiser vos projets
- Arborescence de pages -- Pages imbriquees avec glisser-deposer, recherche et sous-pages
- Collaboration -- Invitez des membres (editeur / lecteur) a partager vos espaces
- Discussion -- Messagerie integree par page avec pagination et notifications en temps reel
- Synchronisation -- Long-polling pour la mise a jour du contenu et de l'arborescence en temps reel
- Themes -- Basculez entre le mode clair et sombre (DaisyUI)
- Authentification -- Inscription avec verification par email (OTP via Gmail SMTP)
- Page 404 -- Page d'erreur personnalisee avec illustration SVG
- PHP 8.0+
- MySQL / MariaDB
- Composer
- Serveur web Apache (WAMP, XAMPP, etc.)
- Cloner le depot
git clone <url-du-depot> notionlite- Installer les dependances PHP
cd notionlite
composer install- Configurer l'environnement
Copiez le fichier .env.example ou creez un .env a la racine :
APP_NAME="NotionLite"
SITE_DESCRIPTION="Description de votre application"
DB_HOST=localhost
DB_DATABASE=notionlite
DB_USERNAME=root
DB_PASSWORD=""
GMAIL_USER=votre@gmail.com
GMAIL_APP_PASSWORD="xxxx xxxx xxxx xxxx"
GMAIL_FROM_NAME=NotionLite- Creer la base de donnees
Creez une base notionlite dans MySQL, puis executez les migrations dans l'ordre :
mysql -u root notionlite < migrations/V1__tableinitiale.sql
mysql -u root notionlite < migrations/V2__modificationtableutilisateurs.sqlOu utilisez Flyway si configure :
flyway migrate- Configurer Apache
Assurez-vous que le dossier notionlite est accessible via votre serveur web (ex: http://localhost/notionlite/).
notionlite/
accueil/ Page d'accueil, connexion, inscription
ajax/ Endpoints login, signup, verify_otp
js/ Scripts front (loginSignup.js, theme-saver.js)
css/ Styles de la page d'accueil
app/ Application principale (SPA)
api/ API REST (auth, pages, espaces, membres, discussion, polling, profil)
js/ Modules JS (app, sidebar, editor, discussion, polling, settings)
css/ Styles de l'application
index.php Shell principal de l'application
assets/ Ressources partagees (DaisyUI, Tailwind, FontAwesome, images)
migrations/ Scripts SQL de migration
404/ Page d'erreur personnalisee
.env Variables d'environnement (non versionne)
.htaccess Configuration Apache
composer.json Dependances PHP
Tous les endpoints sont dans app/api/ et communiquent en JSON.
| Endpoint | Methodes | Description |
|---|---|---|
auth.php |
-- | Middleware de verification de session |
espaces.php |
GET, POST, PUT, DELETE | CRUD des espaces de travail |
pages.php |
GET, POST, PUT, DELETE | CRUD des pages (arborescence) |
contenu.php |
GET, POST | Lecture et sauvegarde du contenu editeur |
discussion.php |
GET, POST | Messages par page (pagination, polling) |
membres.php |
GET, POST, DELETE | Gestion des membres d'un espace |
profile.php |
GET, POST | Profil utilisateur et deconnexion |
poll.php |
GET | Long-polling pour sync contenu et pages |
- Backend -- PHP 8, MySQL, PHPMailer, vlucas/phpdotenv
- Frontend -- HTML, JavaScript (vanilla), TipTap (ES module via CDN)
- CSS -- DaisyUI + Tailwind CSS
- Icones -- Font Awesome 6
Projet prive.