Zenly is an open source, full-stack platform supporting student mental well-being with:
- AI-powered journaling & reflections (SSE)
- Mood tracking with profile insights and charts
- Community forum (posts, comments, real-time updates)
- Curated resource hub (live helpful/view counts)
- Admin dashboard with moderation, alerts, user management
Built in a modern Next.js (App Router) frontend, backed by a robust Express/PostgreSQL API.
- π Journals with AI analysis β Streamed progress and personalized reflections
- π Mood tracking β Profile insights, Recharts line graphs, daily ratings
- π§βπ€βπ§ Community forum β Posts, comments, likes, reporting, real-time via Socket.IO
- π Curated resources β Featured, search, live helpful/view counts
- π‘οΈ Admin β Moderation, risk alerts, secure elevation flow
- π° Recent activity feed β Journals, resource views, forum posts
- π Real-time updates β Seamless with Socket.IO & SSE
Fork the repo
git clone https://github.com/YourUsername/Zenly.git
cd Zenly
Copy env file and fill out your secrets
cp backend/.env.example backend/.env
Start both servers (FE + BE)
./start-dev.sh
- Backend runs at: http://localhost:5001
- Frontend runs at: http://localhost:3000
Start Development:
./start-dev.sh
-
Installs dependencies
-
Runs backend & frontend servers
API Endpoints: See API Overview for routes and usage.
- CORS errors β Set
FRONTEND_URLin backend.env - Token issues β Auto-refresh is handled; if stuck, login again
- SSE/Socket.IO not streaming β Ensure proxy allows streaming, CORS whitelists are correct
Zenly/
βββ backend/ # Express API, Socket.IO, SSE
β βββ server.js
β βββ config/
β βββ controllers/
β βββ middleware/
β βββ models/
β βββ routes/
β βββ services/
βββ frontend/ # Next.js 14 app (App Router)
β βββ app/
β βββ components/
β βββ hooks/
β βββ lib/
β βββ public/
βββ start-dev.sh # One-command dev start (FE+BE)
βββ package.json # Root scripts (dev, build, lint, bdev)
βββ README.md
SUPABASE_URLβ Your Supabase project URLSUPABASE_SERVICE_ROLE_KEYβ Your Supabase service role API keyPORTβ API portFRONTEND_URLβ Allowed CORS originJWT_ACCESS_SECRET, JWT_REFRESH_SECRETβ JWT secrets- ...and more for emails, AI, admin, see
.env.example
NEXT_PUBLIC_API_URLβ API base
- Auth (
/auth): Signup, OTP, login, password reset, admin elevation - Journals (
/journals): CRUD, stats, analysis (SSE), AI messages - Moods (
/moods): Today's update, profile chart - Forum (
/forum): Posts, comments, likes, reports - Resources (
/resources): Featured, search, helpful/view count, admin CRUD - Notifications/Activity: Recent events, notifications
See code for full endpoints and sample payloads.
- Socket.IO: Real-time
forum&resourcesrooms - SSE: Streaming for journal analysis, AI chat
- Email flows (password reset, onboarding)
- File uploads (avatars, attachments)
- Production deployment guides (Vercel, Railway, Render, Fly.io)
- Monitoring, error tracking
Zenly is open source under the MPL-2.0 License (Mozilla Public License Version 2.0).
See LICENSE for details.
While commercial use is technically allowed under MPL-2.0, we kindly discourage commercialization of Zenly. Please use this project for learning, personal growth, and community benefit.
- Please read our Contributing Guide for setup, workflow, and PR expectations
- See our Code of Conduct for community standards