Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏫 Smart Campus Reporting System

A web-based campus management and reporting platform designed to help students, faculty, and administrators maintain a safe, clean, and efficient university environment.


πŸ“Œ Overview

The Smart Campus Reporting System is a modern web application designed to provide a centralized platform for campus users to access their profiles, submit and track campus-related issues, receive notifications, and access role-specific functionality.

The system is designed around a simple idea:

Make it easier for members of a university community to report problems and keep track of campus activities.

The application provides a university-branded login experience followed by a role-aware campus dashboard.


✨ Key Features

πŸ” University Authentication

The application provides a dedicated university login interface with:

  • University email authentication
  • Password-based sign-in
  • Form validation
  • Loading states during authentication
  • Error handling
  • Role-based redirection
  • Password-change flow for users who are required to update their password

The login interface is designed around the Ahmedabad University identity and uses a dedicated campus background and university logo.


πŸ‘€ User Dashboard

After authentication, users are taken to their campus dashboard.

The dashboard provides:

  • User profile information
  • User name and email
  • User role identification
  • Profile management section
  • Campus reporting section
  • Notifications section
  • Logout functionality

The dashboard also displays different role icons depending on the user's role.


πŸ“ Campus Reports

The system provides a dedicated area for campus reporting.

Users can:

  • Submit campus-related issues
  • Track reported campus issues
  • Use the reporting system as a centralized channel for campus concerns

This feature is intended to improve communication between campus users and the relevant administrative authorities.


πŸ”” Notifications

The dashboard includes a notifications section intended to keep users updated about:

  • Campus activities
  • Updates related to reported issues
  • Important campus information

πŸ›‘οΈ Role-Based Access

The application supports role-aware functionality.

Currently represented roles include:

  • Admin
  • Faculty
  • User / Student

Administrators have access to an additional Admin Panel, while other users are directed to the standard dashboard.


βš™οΈ Admin Panel

Administrators can access a dedicated administrative area through the dashboard.

The admin functionality is designed to provide privileged access to campus management functionality.

The application checks the user's role before exposing the Admin Panel.


πŸ”‘ Password Management

The application includes a password-change flow for users whose account is flagged as requiring a password update.

Users with the must_change_password status are automatically redirected to the password-change page after authentication.


🎨 User Interface

The interface follows a clean university-oriented visual design.

Design characteristics

  • Ahmedabad University branding
  • Clean blue and white colour palette
  • Rounded cards and controls
  • Responsive layouts
  • Modern dashboard design
  • Lucide icons
  • Accessible form elements
  • Clear error and loading states
  • Desktop and mobile considerations

The login page uses a split-screen layout:

Left side

  • University branding
  • Campus imagery
  • System title
  • Project tagline

Right side

  • University login form
  • Email field
  • Password field
  • Sign-in button

🧩 Technology Stack

Frontend

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • Lucide React

UI & Components

  • Radix UI
  • shadcn/ui component structure
  • Class Variance Authority
  • Tailwind Merge
  • CMDK

Forms & Validation

  • React Hook Form
  • Zod
  • @hookform/resolvers

Backend / Services

  • Supabase SSR
  • Next.js API routes

Data & Utilities

  • date-fns
  • Recharts
  • Embla Carousel
  • Sonner
  • Vaul

Development Tools

  • TypeScript
  • PostCSS
  • Tailwind CSS
  • Next.js development server

πŸ—οΈ Project Structure

smart-campus-main/
β”‚
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ ...                 # Next.js application routes and pages
β”‚   └── ...
β”‚
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ui/
β”‚   └── ...                 # Reusable UI components
β”‚
β”œβ”€β”€ hooks/
β”‚                           # Custom React hooks
β”‚
β”œβ”€β”€ lib/
β”‚                           # Utility functions and shared logic
β”‚
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ ahd-logo.png        # Ahmedabad University logo
β”‚   β”œβ”€β”€ campus-bg.png       # Campus background
β”‚   └── ...
β”‚
β”œβ”€β”€ scripts/
β”‚                           # Project scripts
β”‚
β”œβ”€β”€ styles/
β”‚                           # Styling resources
β”‚
β”œβ”€β”€ components.json         # UI component configuration
β”œβ”€β”€ next.config.mjs         # Next.js configuration
β”œβ”€β”€ package.json            # Dependencies and scripts
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ pnpm-lock.yaml
β”œβ”€β”€ postcss.config.mjs
β”œβ”€β”€ tsconfig.json
└── .gitignore

πŸ”„ Application Flow

The general user flow is:

                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚   Login Screen   β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
                         β–Ό
                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                β”‚ Authentication   β”‚
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
             β”‚                       β”‚
             β–Ό                       β–Ό
        Password Change          Normal Login
             β”‚                       β”‚
             β–Ό                       β–Ό
      Change Password          Role Detection
                                     β”‚
                     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                     β”‚               β”‚               β”‚
                     β–Ό               β–Ό               β–Ό
                   Admin           Faculty       Student/User
                     β”‚               β”‚               β”‚
                     β–Ό               β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
               Admin Panel                   β”‚
                                             β–Ό
                                      User Dashboard

πŸ‘₯ User Roles

Role Access
Admin Dashboard + Admin Panel
Faculty Standard Dashboard
Student / User Standard Dashboard

The application uses the authenticated user's role to determine the appropriate destination after login.


πŸ–₯️ Dashboard

The dashboard provides a centralized view of the user's campus account.

Profile

Displays:

  • User name
  • University email
  • Account role

Campus Reports

Provides access to the campus issue reporting workflow.

Notifications

Provides a space for campus-related updates and notifications.

Administration

Administrators are provided with an additional Admin Panel entry point.


πŸ”’ Authentication Flow

The frontend login form sends the submitted credentials to:

/api/auth/login

The expected login payload is:

{
  "email": "user@university.edu",
  "password": "********"
}

Following successful authentication, the returned user information is stored locally for the application session.

The application then determines the appropriate destination based on the user's account state and role.


πŸ“± Responsive Design

The application is designed with responsive layouts in mind.

The login interface includes a desktop split-screen experience while adapting the university branding for smaller screens.

Dashboard layouts use responsive grid structures to accommodate different screen sizes.


πŸ—ƒοΈ Backend & Data Layer

The project includes Supabase-related dependencies and is structured to support server-side Supabase integration.

Supabase can be used for:

  • Authentication
  • User management
  • Database storage
  • Campus reporting data
  • Notifications
  • Role-based application data

Actual production credentials and database configuration should be supplied through environment variables.


πŸ” Security Considerations

The application is designed around authenticated and role-aware access.

Important security practices include:

  • Never commit passwords or API keys
  • Keep .env files out of version control
  • Use environment variables for sensitive configuration
  • Validate authentication requests on the server
  • Enforce authorization server-side
  • Do not rely solely on client-side role checks
  • Protect administrative routes and API endpoints

πŸš€ Future Improvements

Potential future enhancements include:

  • Real-time campus issue tracking
  • Report status updates
  • Image attachments for reports
  • Location-based campus reporting
  • Push notifications
  • Email notifications
  • Admin analytics dashboard
  • Report filtering and search
  • Issue priority levels
  • Report assignment to departments
  • Report resolution workflow
  • User profile management
  • Faculty-specific dashboards
  • Student-specific dashboards
  • Mobile application support
  • Advanced reporting and analytics

🎯 Project Objectives

The Smart Campus Reporting System aims to:

  1. Provide a centralized platform for campus issue reporting.
  2. Improve communication between students, faculty, and administrators.
  3. Simplify the process of submitting campus-related concerns.
  4. Provide users with visibility into their reported issues.
  5. Support role-specific campus functionality.
  6. Create a cleaner and more efficient campus management workflow.
  7. Provide a scalable foundation for future smart-campus features.

πŸ“š Project Highlights

Modern Web Architecture

Built using the modern Next.js App Router architecture with React and TypeScript.

Component-Based UI

Reusable UI components are organized under the components directory.

Role-Aware Experience

Different user roles receive different access and navigation options.

University Branding

The interface incorporates Ahmedabad University branding and campus imagery.

Responsive Interface

The UI adapts to desktop and smaller-screen layouts.

Extensible Architecture

The project structure allows additional reporting, notification, analytics, and administrative functionality to be added over time.


πŸ› οΈ Development Status

Project Type: Academic / Prototype Project

Current Focus:

  • Smart campus user management
  • Campus issue reporting
  • Role-aware dashboards
  • University authentication interface
  • Administrative access
  • Responsive user interface

Note: Some backend services and production configuration may require additional setup before the application can be deployed as a fully operational production system.


πŸ“„ License

This project was developed as an academic/project prototype.

Add the appropriate license here if the project is later released under an open-source license.


πŸ‘¨β€πŸ’» Project

Smart Campus Reporting System

Built with:

Next.js Β· React Β· TypeScript Β· Tailwind CSS Β· Supabase

About

University campus user management and reporting dashboard built with Next.js, React, TypeScript and Tailwind CSS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages