Skip to content

Shubham-cyber-prog/Smart-Campus

Repository files navigation

**πŸš€ Smart Campus Admin Smart-Campus is a production-ready campus management system designed to make campus life smarter, faster, and more efficient. Built using React, TypeScript, Vite, Supabase, and modern web technologies.

🏫 Smart Campus Admin

Revolutionizing Campus Management with AI & Modern Technology

Smart Campus Logo

Smart Campus

DevElevate Logo

Campus Ecosystem

πŸš€ Join the Revolution in Campus Technology! πŸš€

πŸ–₯️ Demo

Add your deployed Netlify / Vercel URL here once live.
Example:
https://smart-campus.netlify.app


Features

User Management

  • Role-based access control (Admin, Staff, Security, Student)
  • User profiles with department and contact information
  • Secure authentication system with Supabase Auth

Campus Management

  • Building management with floor plans and locations
  • Facility tracking (labs, libraries, cafeterias, gyms)
  • Room allocation and monitoring
  • Asset management and tracking

Emergency Management

  • Real-time emergency reporting and tracking
  • Severity levels (Critical, High, Medium, Low)
  • Emergency response team coordination
  • Incident report management

Communication Center

  • Campus-wide broadcast system
  • Priority-based notifications
  • Multiple communication types (announcements, emergencies, events, maintenance)
  • Targeted messaging to specific user roles

Analytics & Reports

  • User growth metrics
  • Building utilization statistics
  • Emergency response trends
  • Real-time campus activity monitoring

Settings & Configuration

  • Security settings and access control
  • Notification preferences
  • Data backup and retention
  • System customization

Tech Stack

  • Frontend: React 18, TypeScript, Vite
  • Styling: Tailwind CSS
  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Icons: Lucide React
  • Routing: React Router v6

Getting Started

Prerequisites

  • Node.js 18+ and npm
  • Supabase account

Installation

  1. Clone the repository

  2. Install dependencies:

    npm install
  3. Set up environment variables: The .env file already contains your Supabase credentials:

    • VITE_SUPABASE_URL
    • VITE_SUPABASE_ANON_KEY
  4. Start the development server:

    npm run dev
  5. Build for production:

    npm run build

Database Schema

The application uses the following main tables:

  • profiles - User profiles with roles and information
  • buildings - Campus buildings with locations
  • facilities - Facilities within buildings
  • rooms - Individual rooms
  • assets - Campus assets and equipment
  • emergencies - Emergency incidents
  • incident_reports - Detailed incident documentation
  • response_teams - Emergency response teams
  • team_members - Team member assignments
  • notifications - User notifications
  • broadcasts - Campus-wide communications
  • audit_logs - System audit trail

Security

  • Row Level Security (RLS) enabled on all tables
  • Role-based access policies
  • JWT-based authentication
  • Secure password handling
  • Audit logging for all critical operations

.env

# Supabase configuration
SUPABASE_URL=your_supabase_url_here
SUPABASE_KEY=your_supabase_key_here

# Optional: Add more environment variables as needed
# EXAMPLE:
# PORT=3000
# NODE_ENV=development

Default Roles

  1. Admin: Full system access, user management, system settings
  2. Staff: Campus and facility management, reports
  3. Security: Emergency management, incident reporting
  4. Student: Limited read access to public information

Usage

  1. Create an Account: Navigate to /register and create a new account
  2. Login: Use your credentials to log in at /login
  3. Dashboard: View campus overview and recent activity
  4. Manage Users: (Admin only) Add and manage campus users
  5. Campus Management: Track buildings, facilities, and rooms
  6. Emergency Response: Report and manage campus emergencies
  7. Communications: Send campus-wide broadcasts and notifications
  8. Analytics: View reports and insights

Project Structure

SMART-CAMPUS-ADMIN/
β”‚
β”œβ”€β”€ πŸ“ client/                           # React Frontend Application
β”‚   β”œβ”€β”€ πŸ“ public/                       # Static Assets
β”‚   β”‚   β”œβ”€β”€ index.html
β”‚   β”‚   β”œβ”€β”€ manifest.json
β”‚   β”‚   β”œβ”€β”€ robots.txt
β”‚   β”‚   β”œβ”€β”€ service-worker.js            # PWA Service Worker
β”‚   β”‚   β”œβ”€β”€ πŸ“ icons/                    # App Icons
β”‚   β”‚   └── πŸ“ images/                   # Static Images
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“ src/                          # Source Code
β”‚   β”‚   β”œβ”€β”€ πŸ“ assets/                   # Assets
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ fonts/                # Custom Fonts
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ styles/               # Global Styles
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ global.css
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ variables.css
β”‚   β”‚   β”‚   β”‚   └── animations.css
β”‚   β”‚   β”‚   └── πŸ“ svgs/                 # SVG Components
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/               # Reusable Components
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ common/               # Common Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Button/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Input/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Modal/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Table/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Card/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Loader/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Toast/
β”‚   β”‚   β”‚   β”‚   └── Tooltip/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ layout/               # Layout Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Sidebar/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Header/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Footer/
β”‚   β”‚   β”‚   β”‚   └── Breadcrumb/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ forms/                # Form Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ FormBuilder/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ FileUpload/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ RichTextEditor/
β”‚   β”‚   β”‚   β”‚   └── DateRangePicker/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ maps/                 # Map Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ CampusMap/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ BuildingEditor/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ FloorPlan/
β”‚   β”‚   β”‚   β”‚   └── LocationPicker/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ charts/               # Chart Components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ActivityChart/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UtilizationChart/
β”‚   β”‚   β”‚   β”‚   └── CustomChart/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── πŸ“ widgets/              # Dashboard Widgets
β”‚   β”‚   β”‚       β”œβ”€β”€ StatsCard/
β”‚   β”‚   β”‚       β”œβ”€β”€ ActivityFeed/
β”‚   β”‚   β”‚       └── QuickActions/
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/                    # Application Pages
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Auth/                 # Authentication Pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Login/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Register/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ForgotPassword/
β”‚   β”‚   β”‚   β”‚   └── ResetPassword/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Dashboard/            # Dashboard Pages
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Overview/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Analytics/
β”‚   β”‚   β”‚   β”‚   └── CustomDashboard/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Users/                # User Management
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UserList/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UserCreate/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UserEdit/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UserProfile/
β”‚   β”‚   β”‚   β”‚   └── RolesPermissions/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Campus/               # Campus Management
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Buildings/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Facilities/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Rooms/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Assets/
β”‚   β”‚   β”‚   β”‚   └── Maps/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Emergency/            # Emergency Management
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ LiveAlerts/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ ResponseTeam/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ IncidentReports/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ EmergencyPlans/
β”‚   β”‚   β”‚   β”‚   └── Drills/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Communication/        # Communication
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Notifications/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Broadcasts/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Announcements/
β”‚   β”‚   β”‚   β”‚   └── Templates/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Analytics/            # Analytics & Reports
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Reports/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Insights/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Export/
β”‚   β”‚   β”‚   β”‚   └── CustomReports/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Settings/             # System Settings
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ General/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Security/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Integration/
β”‚   β”‚   β”‚   β”‚   └── Backup/
β”‚   β”‚   β”‚   β”‚
β”‚   β”‚   β”‚   └── πŸ“ Admin/                # Admin Pages
β”‚   β”‚   β”‚       β”œβ”€β”€ AuditLogs/
β”‚   β”‚   β”‚       β”œβ”€β”€ SystemHealth/
β”‚   β”‚   β”‚       └── APIKeys/
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ hooks/                    # Custom React Hooks
β”‚   β”‚   β”‚   β”œβ”€β”€ useAuth.js
β”‚   β”‚   β”‚   β”œβ”€β”€ useWebSocket.js
β”‚   β”‚   β”‚   β”œβ”€β”€ useNotifications.js
β”‚   β”‚   β”‚   β”œβ”€β”€ useMap.js
β”‚   β”‚   β”‚   β”œβ”€β”€ useForm.js
β”‚   β”‚   β”‚   └── useLocalStorage.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ store/                    # State Management
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ slices/               # Redux Slices
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ authSlice.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ userSlice.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ campusSlice.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ emergencySlice.js
β”‚   β”‚   β”‚   β”‚   └── notificationSlice.js
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ services/             # RTK Query Services
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ authApi.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ userApi.js
β”‚   β”‚   β”‚   β”‚   └── campusApi.js
β”‚   β”‚   β”‚   └── store.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ services/                 # API Services
β”‚   β”‚   β”‚   β”œβ”€β”€ apiClient.js
β”‚   β”‚   β”‚   β”œβ”€β”€ authService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ userService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ campusService.js
β”‚   β”‚   β”‚   └── emergencyService.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ utils/                    # Utility Functions
β”‚   β”‚   β”‚   β”œβ”€β”€ validators.js
β”‚   β”‚   β”‚   β”œβ”€β”€ formatters.js
β”‚   β”‚   β”‚   β”œβ”€β”€ helpers.js
β”‚   β”‚   β”‚   β”œβ”€β”€ constants.js
β”‚   β”‚   β”‚   β”œβ”€β”€ enums.js
β”‚   β”‚   β”‚   └── errorHandler.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ contexts/                 # React Contexts
β”‚   β”‚   β”‚   β”œβ”€β”€ AuthContext.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ ThemeContext.jsx
β”‚   β”‚   β”‚   └── NotificationContext.jsx
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ types/                    # TypeScript Types
β”‚   β”‚   β”‚   β”œβ”€β”€ user.types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ campus.types.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ emergency.types.ts
β”‚   β”‚   β”‚   └── api.types.ts
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ config/                   # Configuration
β”‚   β”‚   β”‚   β”œβ”€β”€ routes.js
β”‚   β”‚   β”‚   β”œβ”€β”€ theme.js
β”‚   β”‚   β”‚   └── settings.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ App.css
β”‚   β”‚   β”œβ”€β”€ main.jsx
β”‚   β”‚   └── index.css
β”‚   β”‚
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tailwind.config.js
β”‚   β”œβ”€β”€ postcss.config.js
β”‚   β”œβ”€β”€ vite.config.js                    # Vite Configuration
β”‚   └── .env.example
β”‚
β”œβ”€β”€ πŸ“ server/                           # Node.js Backend
β”‚   β”œβ”€β”€ πŸ“ src/                          # Source Code
β”‚   β”‚   β”œβ”€β”€ πŸ“ config/                   # Configuration
β”‚   β”‚   β”‚   β”œβ”€β”€ database.js
β”‚   β”‚   β”‚   β”œβ”€β”€ redis.js
β”‚   β”‚   β”‚   β”œβ”€β”€ passport.js
β”‚   β”‚   β”‚   β”œβ”€β”€ constants.js
β”‚   β”‚   β”‚   β”œβ”€β”€ environment.js
β”‚   β”‚   β”‚   └── swagger.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ models/                   # Database Models
β”‚   β”‚   β”‚   β”œβ”€β”€ User/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Admin.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Student.js
β”‚   β”‚   β”‚   β”‚   └── Staff.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Campus/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Building.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Facility.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Room.js
β”‚   β”‚   β”‚   β”‚   └── Asset.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Emergency/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Emergency.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Incident.js
β”‚   β”‚   β”‚   β”‚   └── ResponseTeam.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Communication/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Notification.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Broadcast.js
β”‚   β”‚   β”‚   β”‚   └── Template.js
β”‚   β”‚   β”‚   β”œβ”€β”€ Analytics/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Report.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ Log.js
β”‚   β”‚   β”‚   β”‚   └── Metric.js
β”‚   β”‚   β”‚   └── System/
β”‚   β”‚   β”‚       β”œβ”€β”€ AuditLog.js
β”‚   β”‚   β”‚       β”œβ”€β”€ Settings.js
β”‚   β”‚   β”‚       └── Backup.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ controllers/              # Route Controllers
β”‚   β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ userController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ campusController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ emergencyController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ notificationController.js
β”‚   β”‚   β”‚   β”œβ”€β”€ analyticsController.js
β”‚   β”‚   β”‚   └── systemController.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ routes/                   # API Routes
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ v1/                   # API Version 1
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ userRoutes.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ campusRoutes.js
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ emergencyRoutes.js
β”‚   β”‚   β”‚   β”‚   └── analyticsRoutes.js
β”‚   β”‚   β”‚   └── index.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ middleware/               # Middleware
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   β”‚   β”œβ”€β”€ roleCheck.js
β”‚   β”‚   β”‚   β”œβ”€β”€ validation.js
β”‚   β”‚   β”‚   β”œβ”€β”€ errorHandler.js
β”‚   β”‚   β”‚   β”œβ”€β”€ logger.js
β”‚   β”‚   β”‚   β”œβ”€β”€ rateLimiter.js
β”‚   β”‚   β”‚   └── upload.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ services/                 # Business Logic
β”‚   β”‚   β”‚   β”œβ”€β”€ authService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ userService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ campusService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ emergencyService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ notificationService.js
β”‚   β”‚   β”‚   β”œβ”€β”€ analyticsService.js
β”‚   β”‚   β”‚   └── aiService.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ utils/                    # Utilities
β”‚   β”‚   β”‚   β”œβ”€β”€ jwt.js
β”‚   β”‚   β”‚   β”œβ”€β”€ bcrypt.js
β”‚   β”‚   β”‚   β”œβ”€β”€ validators.js
β”‚   β”‚   β”‚   β”œβ”€β”€ emailTemplates.js
β”‚   β”‚   β”‚   β”œβ”€β”€ pushNotification.js
β”‚   β”‚   β”‚   β”œβ”€β”€ fileUpload.js
β”‚   β”‚   β”‚   └── reportGenerator.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ sockets/                  # WebSocket Handlers
β”‚   β”‚   β”‚   β”œβ”€β”€ emergencySocket.js
β”‚   β”‚   β”‚   β”œβ”€β”€ notificationSocket.js
β”‚   β”‚   β”‚   β”œβ”€β”€ campusSocket.js
β”‚   β”‚   β”‚   └── index.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ jobs/                     # Cron Jobs
β”‚   β”‚   β”‚   β”œβ”€β”€ backupJob.js
β”‚   β”‚   β”‚   β”œβ”€β”€ cleanupJob.js
β”‚   β”‚   β”‚   β”œβ”€β”€ notificationJob.js
β”‚   β”‚   β”‚   └── reportJob.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ scripts/                  # Utility Scripts
β”‚   β”‚   β”‚   β”œβ”€β”€ seedDatabase.js
β”‚   β”‚   β”‚   β”œβ”€β”€ backupDatabase.js
β”‚   β”‚   β”‚   └── migrateData.js
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ πŸ“ docs/                     # API Documentation
β”‚   β”‚   β”‚   β”œβ”€β”€ swagger.json
β”‚   β”‚   β”‚   └── api.yaml
β”‚   β”‚   β”‚
β”‚   β”‚   β”œβ”€β”€ app.js
β”‚   β”‚   β”œβ”€β”€ server.js
β”‚   β”‚   └── index.js
β”‚   β”‚
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ .env.example
β”‚   β”œβ”€β”€ .eslintrc.js
β”‚   β”œβ”€β”€ .prettierrc
β”‚   └── Dockerfile
β”‚
β”œβ”€β”€ πŸ“ mobile/                          # React Native Admin App
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ screens/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/
β”‚   β”‚   β”œβ”€β”€ πŸ“ navigation/
β”‚   β”‚   └── πŸ“ utils/
β”‚   β”œβ”€β”€ package.json
β”‚   └── app.json
β”‚
β”œβ”€β”€ πŸ“ docker/                          # Docker Configuration
β”‚   β”œβ”€β”€ Dockerfile.client
β”‚   β”œβ”€β”€ Dockerfile.server
β”‚   β”œβ”€β”€ Dockerfile.nginx
β”‚   β”œβ”€β”€ docker-compose.dev.yml
β”‚   β”œβ”€β”€ docker-compose.prod.yml
β”‚   └── nginx.conf
β”‚
β”œβ”€β”€ πŸ“ docs/                           # Documentation
β”‚   β”œβ”€β”€ πŸ“ api/                        # API Documentation
β”‚   β”‚   β”œβ”€β”€ overview.md
β”‚   β”‚   β”œβ”€β”€ endpoints.md
β”‚   β”‚   └── examples.md
β”‚   β”œβ”€β”€ πŸ“ deployment/                 # Deployment Guides
β”‚   β”‚   β”œβ”€β”€ local.md
β”‚   β”‚   β”œβ”€β”€ production.md
β”‚   β”‚   └── aws.md
β”‚   β”œβ”€β”€ πŸ“ development/                # Development Guides
β”‚   β”‚   β”œβ”€β”€ setup.md
β”‚   β”‚   β”œβ”€β”€ coding-standards.md
β”‚   β”‚   └── testing.md
β”‚   β”œβ”€β”€ πŸ“ user-guides/                # User Manuals
β”‚   β”‚   β”œβ”€β”€ admin-guide.md
β”‚   β”‚   β”œβ”€β”€ user-guide.md
β”‚   β”‚   └── emergency-guide.md
β”‚   └── πŸ“ architecture/               # Architecture Docs
β”‚       β”œβ”€β”€ system-design.md
β”‚       β”œβ”€β”€ database-design.md
β”‚       └── security.md
β”‚
β”œβ”€β”€ πŸ“ tests/                          # Test Suites
β”‚   β”œβ”€β”€ πŸ“ unit/
β”‚   β”œβ”€β”€ πŸ“ integration/
β”‚   β”œβ”€β”€ πŸ“ e2e/
β”‚   β”œβ”€β”€ πŸ“ performance/
β”‚   └── jest.config.js
β”‚
β”œβ”€β”€ πŸ“ scripts/                        # Build & Utility Scripts
β”‚   β”œβ”€β”€ build.sh
β”‚   β”œβ”€β”€ deploy.sh
β”‚   β”œβ”€β”€ backup.sh
β”‚   └── seed.sh
β”‚
β”œβ”€β”€ .github/                           # GitHub Configuration
β”‚   β”œβ”€β”€ πŸ“ workflows/                  # GitHub Actions
β”‚   β”‚   β”œβ”€β”€ ci.yml
β”‚   β”‚   β”œβ”€β”€ cd.yml
β”‚   β”‚   └── security.yml
β”‚   β”œβ”€β”€ dependabot.yml
β”‚   └── CODEOWNERS
β”‚
β”œβ”€β”€ .husky/                           # Git Hooks
β”œβ”€β”€ .vscode/                          # VS Code Settings
β”œβ”€β”€ .dockerignore
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .env.example
β”œβ”€β”€ package.json                      # Root Package.json
β”œβ”€β”€ README.md
└── LICENSE

Contributing

This is a production-ready campus management system. When contributing:

  1. Follow the existing code style
  2. Write meaningful commit messages
  3. Test all features before submitting
  4. Ensure RLS policies are properly configured
  5. Document any new features

Code of Conduct 🧾

By contributing, you agree to:

  • Be respectful and supportive
  • Help beginners who ask questions
  • Keep discussions constructive
  • Follow open-source etiquette
  • Avoid spamming issues or PRs

License πŸ“„

This project is licensed under the MIT License – see the LICENSE file for details.


Contact / Support πŸ“¬

  • Project Admins: Subham Nayak / Mentors
  • Issues: Open an Issue on GitHub
  • Community: Reach out via project communication channels

Together, let's build something amazing! πŸš€

About

Smart Campus Admin is a comprehensive, enterprise-grade campus management platform designed to transform traditional educational institutions into intelligent, connected, and efficient ecosystems.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors