A Web-Based Hostel Management System for Academic Institutions
HostelSync digitizes hostel operations β replacing paper registers with a secure, real-time, role-based platform for managing outing approvals, attendance, student movement, and more.
π‘ To display screenshots: Create a
screenshots/folder in your repo root and upload the 5 images with these filenames:login.png,principal-dashboard.png,student-database.png,attendance-overview.png,approval-history.png
HostelSync is a production-ready, full-stack hostel management system built for St. Peter's College of Engineering and Technology. It eliminates paper-based hostel workflows by providing a centralized platform where students, staff, and administrators can manage hostel operations digitally β with real-time data, role-specific dashboards, and automated notifications.
- β Live & Production Deployed at hostelsync.me
- π 5-Role RBAC with database-level Row-Level Security (RLS)
- π Multi-Stage Outing Approval β Student β Advisor β HOD β Warden
- π Real-Time Movement Tracking β Inside / Outside / Overdue
- π Attendance Analytics β Daily, Weekly, Monthly views
- π§ Guardian Notifications via Email & SMS on outing decisions
- π₯ Excel Export for approval history and reports
| Role | Access & Capabilities |
|---|---|
| π Student | Submit outing requests, track status, view profile & attendance |
| π§βπ« Advisor | Stage 1 approval/rejection, filter students by dept/year |
| ποΈ HOD | Stage 2 approval/rejection, download Excel reports |
| π Warden | Final approval, attendance marking, room management, movement monitoring (hostel-scoped) |
| ποΈ Principal | System-wide monitoring, analytics, full approval chain, all reports |
Student βββΊ Advisor βββΊ HOD βββΊ Warden βββΊ β
Approved
β β β
βββ β Reject (with comments at any stage)
- Two outing types: Local Outing and Hometown Visit
- Each stage independently approves or rejects with comments
- Full audit trail stored β approver name, role, action, timestamp
- Guardian notified via Email/SMS on final decision
| Status | Indicator | Condition |
|---|---|---|
| Inside | π’ Green | No active approved outing |
| Outside | π΄ Red | Within approved outing window |
| Overdue | Past return time, not yet back |
Filter by Department, Year, or Status β summary cards show live counts.
- Wardens mark daily attendance per student
- Three states: Present, Absent, Not Marked
- Daily / Weekly / Monthly analytics views
- Boys & Girls hostel split with system-wide totals for Principal
- Date-range filtering and export support
- Assign and manage room allocations per hostel
- Composite key
(room_number + hostel_type)β identical room numbers can exist in Boys and Girls hostels without conflict - Warden-scoped: each warden only sees their hostel's rooms
- Centralized student database with avatar, hostel badge (Boys/Girls), and profile tooltips
- Advanced filters: Name, Register No., Department, Year, Hostel Type, Room
- Role-scoped: Advisors see their dept, Wardens see their hostel, Principal sees all
- Export approval history to Excel (.xlsx) β respects active filters
- Email & SMS alerts to guardians via Supabase Edge Functions
- Triggered automatically on final outing approval or rejection
- Students submit complaints with optional file attachments
- Role-based visibility β Warden sees hostel complaints, Principal sees all
- Structured, trackable grievance handling
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React.js + Vite | Component-based UI, fast HMR |
| Styling | Tailwind CSS | Utility-first responsive design |
| UI Components | ShadCN UI | Accessible, consistent component library |
| Backend | Supabase (BaaS) | Auth, real-time queries, RLS, storage |
| Database | PostgreSQL | Relational data with RLS policies |
| Serverless | Supabase Edge Functions | Guardian notifications, background logic |
| Export | SheetJS (xlsx) | Excel report generation |
| Hosting | Vercel + Supabase Cloud | Global CDN, managed DB |
Hostelsync/
βββ public/ # Static assets
βββ src/
β βββ components/ # Reusable UI components
β β βββ ui/ # ShadCN base components
β β βββ dashboards/ # Role-specific dashboard views
β β βββ outing/ # Outing request components
β β βββ attendance/ # Attendance management
β β βββ movement/ # Student movement tracking
β β βββ rooms/ # Room management
β β βββ complaints/ # Complaint system
β βββ pages/ # Route-level pages
β β βββ Login.jsx
β β βββ StudentDashboard.jsx
β β βββ AdvisorDashboard.jsx
β β βββ HODDashboard.jsx
β β βββ WardenDashboard.jsx
β β βββ PrincipalDashboard.jsx
β βββ lib/
β β βββ supabaseClient.js # Supabase client initialization
β βββ hooks/ # Custom React hooks
β βββ utils/ # Helper functions & export logic
β βββ App.jsx # Root component & routing
β βββ main.jsx # Entry point
βββ .env.example # Environment variable template
βββ package.json
βββ tailwind.config.js
βββ vite.config.js
βββ README.md
- Node.js >= 18.x
- npm >= 9.x
- A Supabase project (free tier works)
git clone https://github.com/Kadhiravan2002/Hostelsync.git
cd Hostelsyncnpm installcp .env.example .envEdit .env and fill in your Supabase credentials:
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-hereπ Find these in your Supabase project under Settings β API
npm run devOpen http://localhost:5173 in your browser.
npm run buildThis project uses Supabase PostgreSQL with Row-Level Security. The core tables are:
-- Core Tables
students -- Student profiles, dept, year, room, hostel type, guardian
outing_requests -- Request details, type (local/hometown), dates, status
approval_history -- Audit log: approver, role, action, comments, timestamp
attendance -- Daily records: Present / Absent / Not Marked
rooms -- Room allocation with hostel isolation
complaints -- Student grievances with attachment supportπ SQL migration files are located in
supabase/migrations/(if included) or set up tables manually via the Supabase dashboard.
| Feature | Implementation |
|---|---|
| Row-Level Security | PostgreSQL RLS policies on all tables |
| Hostel Isolation | Wardens can only access their own hostel's data |
| Role-Based Auth | Role claims validated server-side per API request |
| Admin Control | Role assignment managed by administrators only |
| Data Separation | Boys/Girls hostel data isolated via hostel_type column |
The live application is deployed at hostelsync.me
- Frontend β Deployed on Vercel with global CDN
- Backend/DB β Hosted on Supabase Cloud (managed PostgreSQL)
- Edge Functions β Deployed via Supabase for guardian notifications
To deploy your own instance:
# Install Vercel CLI
npm install -g vercel
# Deploy
vercel --prodContributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Commit your changes with a clear message
git commit -m "feat: add your feature description" - Push to your branch
git push origin feature/your-feature-name
- Open a Pull Request against the
mainbranch
Use conventional commits for clarity:
| Prefix | Usage |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation changes |
style: |
Formatting, no logic change |
refactor: |
Code restructuring |
chore: |
Build/config changes |
- Keep PRs focused β one feature or fix per PR
- Test your changes locally before submitting
- Update documentation if adding new features
- Follow the existing code style (ESLint + Prettier)
|
A. Kadhiravan @Kadhiravan2002 |
Y. Sanjay Developer |
Project Guide: Ms. D. Jayanthi, Assistant Professor β Dept. of Information Technology Institution: St. Peter's College of Engineering and Technology, Avadi, Chennai Academic Year: 2025 β 2026 | Final Year B.Tech (Information Technology)
This project is developed as a Final Year B.Tech Project at St. Peter's College of Engineering and Technology.
Β© 2026 A. Kadhiravan & Y. Sanjay β All Rights Reserved.




