The ASTUMSJ Library Management System is a full-stack MERN application built to support the ASTU Muslim Jemea Library.
It was developed as the final project for the ASTUMSJ Fullstack Summer Camp (3 months).
The app provides a complete solution for:
- Managing books and borrowing
- Tracking donations
- Handling student accounts
- Secure authentication & OTP verification
- Admin dashboards and analytics
👉 This project shows both technical ability and team collaboration skills. It was developed by Ammar Sabit and Hosam Adem, with the repository hosted under Hoamfi. Our collaboration exemplifies strong team dynamics: we divided tasks strategically (e.g., Ammar focusing on frontend components and UI/UX, Hosam on backend logic and database modeling), conducted regular code reviews, resolved conflicts through pair programming, and iterated based on milestone feedback.
- Frontend (React): Netlify Link
- Backend (Express + MongoDB): Render Link
- Express REST API
- MongoDB Atlas + Mongoose
- TypeScript for type safety
- JWT authentication, bcrypt password hashing
- Nodemailer for OTP email verification
- Joi & Zod validation
- Security: Helmet, CORS
- Logging: Morgan
- React + TypeScript
- Tailwind CSS (responsive UI)
- React Router for routing
- React Hook Form + Zod validation
- Axios API calls
- Recharts for analytics
- React Toastify for notifications
- PDF export with JSPDF
- Nodemon, ts-node, tsconfig-paths
- ESLint + Prettier
Backend/→ Express APIFrontend/→ React app
controllers/→ Business logic (students, books, donations)models/→ Mongoose schemasroutes/→ REST endpointsmiddleware/→ Auth & role checksvalidators/→ Joi/Zod validation
components/→ UI (BookCard, Header, SearchBox, etc.)pages/→ Role-based pages (AdminPages,UserPages)services/→ Axios API clientProtectedRoute.tsx→ Route guard
- Register + OTP email verification
- Secure password hashing (bcrypt)
- JWT login / protected routes
- Role-based access (Admin/User)
- Profile completion flow
- Add, edit, delete books
- Borrow / return with due date tracking
- Overdue & returned status monitoring
- Search & filter books
- Users can donate to the library
- Admin approval/rejection workflow
- Donation history & status tracking
- Admin Dashboard: Manage users, books, donations, pending requests, analytics (charts, reports)
- User Dashboard: Borrowed books, donation history, profile
- Responsive (mobile & desktop)
- Form validation with
react-hook-form + zod - Spinners, toasts, icons for better feedback
- PDF report generation
- Register → User receives OTP → Verifies account
- Login → JWT issued → Used for API calls
- Books → Users borrow → Admin tracks due/returned
- Donations → Users donate → Admin approves/rejects
- Dashboards → Role-based data & charts
This project wasn’t just about coding — it shows teamwork and real-world collaboration:
- Task Division: Clear separation of frontend (UI, UX, React) and backend (database, APIs, authentication).
- Code Reviews: Regular peer reviews to maintain quality.
- Problem Solving: Debugging deployment issues (Render + MongoDB Atlas), handling CORS, authentication flows.
- Communication: Frequent feedback sessions, adapting designs and logic to meet goals.
- Ownership: Each team member took responsibility for their modules while ensuring smooth integration.
These soft skills mirror professional development practices and show readiness to work in a real software team.
express, mongoose, bcrypt, jsonwebtoken, nodemailer, dotenv, helmet, cors, joi, zod, lodash, underscore, morgan, typescript, nodemon
react, react-router-dom, react-hook-form, zod, axios, tailwindcss, vite, recharts, jspdf, react-toastify, react-spinners, react-icons
This is a complete MERN stack project built with modern practices.
It combines technical features (authentication, book management, dashboards, donations) with teamwork skills (collaboration, problem-solving, ownership).
The project proves ability to deliver production-ready full-stack apps with both technical depth and collaborative efficiency.