https://github.com/leonleerl/space-management-tool
A comprehensive space management system for the Business School of the University of Western Australia, designed to streamline office space allocation while reducing manual data entry errors.
https://github.com/leonleerl/space-management-tool
accommodation-system educational-tools excel-interface handsontable nextjs15 prisma room-allocation space-management typescript university-management
Last synced: 7 days ago
JSON representation
A comprehensive space management system for the Business School of the University of Western Australia, designed to streamline office space allocation while reducing manual data entry errors.
- Host: GitHub
- URL: https://github.com/leonleerl/space-management-tool
- Owner: leonleerl
- Created: 2025-08-01T04:18:58.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2025-09-15T09:20:44.000Z (27 days ago)
- Last Synced: 2025-09-15T11:25:07.181Z (27 days ago)
- Topics: accommodation-system, educational-tools, excel-interface, handsontable, nextjs15, prisma, room-allocation, space-management, typescript, university-management
- Language: TypeScript
- Homepage:
- Size: 375 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Introduction
This project is a space management tool designed for the Business School to consolidate accommodation/office spreadsheets and contact lists. The system aims to significantly reduce administration time and minimize errors from manual data entry by providing an intuitive web-based interface for managing staff and student information, room assignments, and generating comprehensive accommodation reports.
# Tech Stack
Frontend & Backend: Next.js (React framework)
Database: Prisma ORM
Table Management: Handsontable (Interactive spreadsheet component)
Authentication: NextAuth.js
Deployment: Vercel
# Environment Variables
Before running the app, ensure the following environment variables are set in a `.env` file at the project root:
```
NEXTAUTH_SECRET=your-strong-random-secret
NEXTAUTH_URL=http://localhost:3000
DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=public
```- `NEXTAUTH_SECRET`: Used to sign and verify authentication tokens. Generate a strong secret, for example:
- macOS/Linux: `openssl rand -base64 32`
- Node.js: `node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"`
- `NEXTAUTH_URL`: The base URL of your app.
- Local development: `http://localhost:3000`
- Production: Set this to your deployed URL (e.g., `https://your-domain.com`).
- `DATABASE_URL`: Connection string for Prisma (PostgreSQL). Example:
- Local: `postgresql://postgres:postgres@localhost:5432/space_management?schema=public`
- Cloud (render.com, supabase, neon, etc.): use the URL provided by your provider.# Quickstart
After cloning the git repository, remember to use the command to install the dependencies:
```
npm install
```Run the project:
```
npm run dev
```If you don't have `npm` environment on your PC, Please check https://nodejs.org/en/download
Next.js learning: https://nextjs.org/docs