Academic Attendance Decision Support System
Acadence is a modern, production-grade web application designed to track student daily attendance, manage semester configurations, and provide comprehensive data-driven insights. Built with Next.js 15 (App Router), Tailwind CSS v4, and Supabase, it provides a highly reliable system to orchestrate scalable academic processes.
- Role-Based Access Control: Secure authentication and authorization flows managed entirely by Supabase Auth with server-side enforcement.
- Attendance Tracking & Simulation: Intuitive interfaces for daily attendance logs, complete with the ability to simulate and process complex attendance scenarios.
- Semester Organization: Configure academic programs, subjects, sections, and credit structures per semester and per session.
- Rich Analytical Dashboards: Access detailed calendar visualizations and robust statistical reports for informed operational and academic decisions.
- Interactive Rich Text Support: Integrated TipTap editor designed for seamless rich text interactions, document handling, and module configurations.
- Premium UI Experience: Designed with
shadcn/uicomponents and Tailwind CSS 4 to guarantee a responsive, highly polished, and fully accessible dark/light mode experience.
- Framework: Next.js 15 (App Router, Server Actions)
- Library: React 19
- Styling: Tailwind CSS v4, clsx, tailwind-merge
- UI Components: shadcn/ui paired with Radix UI primitives
- Database & Auth: Supabase (
@supabase/ssr,@supabase/supabase-js) - Icons & Typography: Lucide React
- Rich Text: TipTap
acadence/
├── app/ # Next.js App Router (pages, layouts, globals)
│ ├── admin/ # Administrative dashboard and user management routes
│ ├── daily-attendance/ # Core feature for marking attendance
│ ├── login/ & register/# Authentication routes
│ ├── semester-*/ # Semester statistics and configurations workflows
│ └── simulate/ # Attendance simulations/testing utilities
├── components/ # Reusable UI architecture
│ ├── admin/ # Admin-specific user interface elements
│ ├── common/ # Sitewide shared components (navbars, footers, etc.)
│ └── ui/ # Base UI primitives generated by shadcn/ui
├── lib/ # Application business logic, utils, and Supabase integrations
├── server/ # Server-side specific operations (e.g. auth actions)
├── db/ # Raw SQL schema definition (Supabase schema.sql) and seed scripts
└── supabase/ # Local Supabase configurations
- Node.js
v20.xor higher - npm, pnpm, or yarn
- A Supabase Project (Local or Cloud)
git clone https://github.com/your-username/acadence.git
cd acadencenpm install
# or
yarn install
# or
pnpm installCreate a .env.local file in the root directory and add your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keyEnsure your Supabase project contains the requisite schema. You can execute the definitions within db/supabase-schema.sql via the Supabase SQL editor or by using the Supabase CLI:
supabase db push
# or run the SQL commands manually from db/supabase-schema.sqlnpm run devOpen http://localhost:3000 using your browser to see the outcome.
npm run dev- Starts the development server with Hot Module Replacement.npm run build- Creates an optimized production build.npm run start- Starts the application in production mode.npm run lint- Lints the codebase using ESLint.
This project is proprietary. All rights reserved. Let the repository owner know if you'd like to use portions of this codebase for reference.