Lexora is a full-stack academic resource sharing platform where students can upload, discover, and manage study materials such as notes, assignments, test papers, and syllabi — all organized by course, semester, and subject.
It is designed to be simple, fast, and collaborative, with moderation and reporting systems to maintain content quality.
- Upload and share academic files (PDF, ZIP, etc.)
- Browse files by subject and semester
- Download tracking
- Search across files, subjects, and users
- File preview (PDF support)
- Signup & login (JWT-based auth)
- Profile with avatar support (Cloudinary)
- View user uploads
- Bookmark files
-
File approval workflow
-
Reporting system with reasons
-
Moderator panel:
- Pending files
- Reported files
- Stale files (1+ year old)
-
Admin panel:
- Manage users
- Assign roles (user / moderator / admin)
- Cloudinary for file and avatar storage
- PostgreSQL database (via Prisma)
- React (Vite)
- Axios
- Tailwind / UI components
- Node.js + Express
- Prisma ORM
- PostgreSQL
- Cloudinary (file storage)
- JWT authentication
/frontend → React app
/backend → Express API + PrismaCreate .env files (do NOT commit them).
DATABASE_URL=
PORT=4000
CLIENT_ORIGIN=
JWT_SECRET=
BASE_URL=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=VITE_API_URL=http://localhost:4000git clone https://github.com/KanuTomer/lexora.git
cd lexoracd backend
npm install
npx prisma generate
npx prisma migrate deploy
npm run devBackend runs at:
http://localhost:4000
cd ../frontend
npm install
npm run devFrontend runs at:
http://localhost:5173
Make sure PostgreSQL is running locally OR use a hosted DB (e.g. Neon).
- Create account on Cloudinary
- Add credentials to backend
.env - Ensure:
- PDFs/ZIPs are allowed (disable restricted media types if needed)
After setup:
- Sign up a new user
- Log in
- Upload a file
- Preview/download file
- Try search
- Test moderation (if role assigned)
.envis ignored via.gitignore- JWT-based authentication
- File upload size limits enforced
- File type validation recommended
- Frontend → Vercel
- Backend → Render
- Database → Neon
- Storage → Cloudinary
- MVP complete ✅
- Cloud storage working ✅
- Auth + moderation implemented ✅
- Ready for deployment 🚀
This is an evolving project. Contributions are welcome!
If you’d like to help:
- Fork the repo
- Create a feature branch
- Submit a PR
Kanu Tomer
- GitHub: https://github.com/KanuTomer
- LinkedIn: https://www.linkedin.com/in/kanu-tomer/
- YouTube: https://www.youtube.com/@adeadkid
Lexora is built as a practical, scalable platform for students to collaborate and share knowledge efficiently.
If you find it useful, consider starring the repo ⭐