Skip to content

πŸ“Š Attendance monitoring platform for universities with powerful data analytics and visualizations. Built with Next.js.

License

Notifications You must be signed in to change notification settings

UniTrackApp/dashboard

Repository files navigation

unitrack-compressed

πŸ“Š UniTrack: Attendance Monitoring Platform for Universities

Easily track and analyze student attendance through a robust dashboard. Gain valuable insights and manage academic administration more effectively with powerful data analytics and visualizations.

Introduction   ✦   Features   ✦   Tech Stack   ✦   Directory Structure   ✦   Getting Started   ✦   Roadmap

Next JS React Prisma tRPC TailwindCSS shadcn/ui Vercel Railway

πŸ“ Introduction

UniTrack Dashboard is an admin tool for tracking and analyzing student attendance in universities. It offers a user-friendly interface for managing students, classes, and lectures, with detailed attendance analytics. Built with Next.js, Tailwind CSS, and Prisma.

✨ Features

  • πŸ” Attendance Analytics: View visualizations and insights on university-wide attendance.
  • πŸ“Š Data Tables: Access, filter, and manage data for students, classes, and lectures.
  • βš™οΈ Admin Controls: Manage courses, users, and more with full control.
  • πŸ› οΈ Real-Time Data: Live updates for attendance metrics using React Query and tRPC.
  • πŸ“ˆ Customizable Dashboards: Tailor the platform to show the most relevant data to administrators.

πŸ› οΈ Tech Stack

  • Next.js - Fullstack framework for server-side rendering and API routes
  • React - UI framework with server components for dynamic UIs
  • TypeScript - Strongly typed language for safer, maintainable code
  • Prisma - ORM for interacting with the database efficiently
  • tRPC - End-to-end type-safe API layer for smooth client-server communication
  • Tailwind CSS - Utility-first CSS framework for rapid UI development
  • Radix UI - Modular and accessible UI components
  • TanStack Table - Powerful table data management for UI
  • Next-Auth.js - Authentication management
  • Railway - Database hosting for scalable deployments

πŸ“‚ Project Structure

.
β”œβ”€β”€ .github              # GitHub Actions CI/CD workflows
β”‚    └── workflows
β”‚        β”œβ”€β”€ build       # Build the project on every push to the main branch
β”‚        └── lint-pr     # Lint PR titles to enforce conventional commits
β”‚
β”œβ”€β”€ .vscode              # Recommended extensions and settings for VSCode
β”œβ”€β”€ prisma               # Prisma schema and migrations
β”‚
β”œβ”€β”€ src                  # Main source code
β”‚   β”œβ”€β”€ app              # Next.js App Router directory for pages and API routes
β”‚   β”‚     └── api        # API routes for the attendance scanner hardware units
β”‚   β”œβ”€β”€ components       # UI and shared components, with shadcn-ui
β”‚   β”œβ”€β”€ lib              # Shared utility functions and hooks
β”‚   β”œβ”€β”€ pages            # (deprecated) Next.js Pages Router directory
β”‚   β”œβ”€β”€ server           # tRPC Routers, Prisma Client, and NextAuth server-side code
β”‚   β”‚     └── routers    # tRPC Procedures for type-safe API endpoints
β”‚   β”œβ”€β”€ styles           # Global styles, Tailwind CSS configuration, and custom font imports
β”‚   β”œβ”€β”€ types            # Shared TypeScript types and Zod schemas for validation
β”‚   └── env.mjs          # Type-safe environment variables using t3-env
β”‚
β”œβ”€β”€ docker-compose.yml   # Docker Compose file for local development databases
β”œβ”€β”€ .nvmrc               # Node Version Manager (nvm/fnm) file for setting a specific Node version
└── package.json         # Project metadata and dependencies

πŸš€ Getting Started

Prerequisites

  • Node.js v16.x or higher
  • PostgreSQL (or equivalent) database
  • Vercel (optional for deployment)

Installation

  1. Clone the repository:
git clone https://github.com/UniTrackApp/dashboard.git
cd dashboard
  1. Install dependencies:
npm install
  1. Set up environment variables by copying .env.example to .env and adding your credentials:
cp .env.example .env
  1. Apply database migrations:
npx prisma migrate dev
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 to view the app in your browser.

✌️ Team

🎯 Roadmap

  • Implement some advanced charts using Recharts and shadcn-ui charts
  • Add multi-campus support
  • Enable real-time student location tracking
  • Expand data export capabilities (CSV, PDF)
  • See GitHub Issues for more details and upcoming features

πŸ”‘ License