Skip to content

Repository files navigation

SmartDesk

A full-stack university management platform with role-based workflows, operational dashboards, and feedback analytics.

CI License: MIT

SmartDesk brings student services, academic administration, campus operations, and analytics into one system. It combines an Express + MongoDB backend with a Next.js frontend to support dashboards, announcements, attendance, finance, library workflows, hostel management, and AI-assisted insight generation.

Overview

Universities often manage academic data, student services, and administrative workflows across disconnected tools. SmartDesk aims to centralize those workflows in a single platform so institutions can:

  • manage multiple roles from one application
  • reduce operational friction across departments
  • surface actionable insights from student feedback and reporting data
  • provide a unified experience for students, faculty, and admins

Features

  • Multi-role access for admins, academic managers, faculty, students, librarians, and other campus staff
  • Unified student dashboard for courses, attendance, fees, library activity, events, and announcements
  • Admin modules for users, topics, configuration, finance, hostel, infrastructure, and academic workflows
  • AI-assisted insights powered by local Ollama integration for feedback summarization
  • Role-based authentication with JWT, secure cookies, rate limiting, and security headers
  • Seeded demo users for local evaluation and onboarding

Demo / Preview

Installation

Requirements

Requirement Version / Notes
Node.js 20+
npm bundled with Node.js
MongoDB local or cloud instance
Ollama optional, only needed for local AI summary features

One-command installers

Review remote scripts before using pipe-to-shell installers in production or shared environments.

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/notysozu/smartdesk/main/install.sh | bash

Linux / macOS with wget:

wget -qO- https://raw.githubusercontent.com/notysozu/smartdesk/main/install.sh | bash

Windows PowerShell:

iwr https://raw.githubusercontent.com/notysozu/smartdesk/main/install.ps1 -UseBasicParsing | iex

Useful installer options:

  • START_APP=0 skips launching the app after install
  • SEED_DB=1 seeds demo users after dependencies are installed
  • INSTALL_DIR=/custom/path clones the repo into a custom location

Example:

curl -fsSL https://raw.githubusercontent.com/notysozu/smartdesk/main/install.sh | START_APP=0 SEED_DB=1 bash

Manual setup

  1. Clone the repository:
git clone https://github.com/notysozu/smartdesk.git
cd smartdesk
  1. Create environment files:
cp .env.example .env
cp client/.env.example client/.env.local
  1. Install backend and frontend dependencies:
npm install
cd client && npm install && cd ..
  1. Start the backend and frontend in separate terminals:
npm run dev
cd client && npm run dev
  1. Open the app at http://localhost:3000.

Environment setup

Backend variables live in .env.example. Frontend variables live in client/.env.example.

Typical local values:

MONGO_URI=mongodb://localhost:27017/smartdesk
JWT_SECRET=change-this-secret
CLIENT_ORIGIN=http://localhost:3000
NEXT_PUBLIC_API_BASE_URL=http://localhost:4000

Usage

Local development

Backend:

npm run dev

Frontend:

cd client && npm run dev

Seed demo data

npm run seed

Default users after seeding:

Role Username Password
Admin admin admin123
Student student student123
Librarian librarian lib123
Hostel Manager hostel_manager hostel123
Finance Manager finance_manager finance123
Academic Manager academic_manager academic123
Faculty faculty faculty123

Test and build

Run backend tests:

npm test

Build the frontend:

cd client && npm run build

Tech Stack

Layer Technologies
Frontend Next.js, React, Tailwind CSS
Backend Node.js, Express
Database MongoDB, Mongoose
Auth & Security JWT, cookies, Helmet, express-rate-limit
AI Ollama
Tooling npm, Nodemon, GitHub Actions

Project Structure

smartdesk/
├── api/                  # Vercel serverless entrypoint
├── client/               # Next.js frontend
│   ├── components/       # Reusable UI pieces
│   ├── lib/              # Frontend API utilities
│   ├── pages/            # Route-based pages
│   └── styles/           # Global styles and theme
├── server/               # Express backend
│   ├── ai/               # AI helpers and Ollama integration
│   ├── controllers/      # Request handlers
│   ├── data/             # DB connection and seed logic
│   ├── middleware/       # Auth, security, validation
│   ├── models/           # Mongoose models
│   └── routes/           # API route definitions
├── tests/                # Backend test coverage
├── install.sh            # Bash installer
├── install.ps1           # PowerShell installer
└── package.json

Status

SmartDesk is actively functional and deployable. Core authentication, admin workflows, student-facing views, seeded demo data, CI, and Vercel deployment are already in place.

Current focus areas:

  • expanding automated test coverage beyond health/config helpers
  • improving frontend lint compatibility with the current Next.js setup
  • adding richer screenshots, walkthroughs, and contributor templates

Contributing

Contributions are welcome. For local setup, coding standards, testing expectations, and pull request conventions, see CONTRIBUTING.md.

Community expectations are documented in CODE_OF_CONDUCT.md.

Security

Please report vulnerabilities privately according to SECURITY.md.

Additional Docs

License

Licensed under the MIT License.

About

Smart Desk is an AI-assisted student feedback intelligence platform designed to help universities collect, cluster, and prioritize student issues using semantic understanding.

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages