Skip to content

GU-null-pointers/np-ui

Repository files navigation

NP-UI: Campus Life Management Platform

NP-UI Logo

Reserve, Shop, Succeed; All Campus Life in One Click!

A blazingly fast native desktop application built with Tauri, SvelteKit 5, and Rust — delivering sub-millisecond backend response times with a modern, responsive UI.


Screenshots

Greeting Page Main Menu
Authentication with modern UI Dashboard with quick access
Room Search Room Details
Advanced room filtering Room booking workflow
My Bookings Admin Area
Booking management Admin room management

Features

Authentication System

  • Secure login and registration flows
  • Session management with persistent auth state
  • Role-based access control (Student, Admin)

Dormitory Management

  • Room Browsing: Browse available dormitory rooms with infinite scroll pagination
  • Advanced Filtering: Filter by room type (Regular, VIP, Suite), building, capacity, and availability
  • Search: Real-time search with debounced input
  • Room Details: Comprehensive room information including amenities, pricing, and availability

Booking System

  • Make Bookings: Reserve rooms for entire semesters with instant confirmation
  • My Bookings: View all your bookings with status tracking (Pending, Confirmed, Cancelled)
  • Cancel Bookings: Flexible cancellation for confirmed bookings
  • Availability Checking: Smart date overlap detection

Admin Panel

  • Room Management: Full CRUD operations for dormitory rooms
  • Dashboard View: Overview of all rooms with status indicators
  • Quick Actions: Edit and delete rooms with immediate updates

Resource Booking

  • General resource booking interface for campus facilities
  • Support for multiple resource types (classrooms, meeting rooms, offices)

E-Learning Platform

  • Course Catalog: Browse available courses and learning materials
  • Progress Tracking: Track your learning journey across all enrolled courses
  • Video Lectures: Stream educational content directly in the application
  • Assignments: View and manage coursework and deadlines
  • Grade Dashboard: View grades and academic performance
  • Offline Access: Download materials for offline study

Campus Shop

  • Product Catalog: Browse campus merchandise and essential items
  • Shopping Cart: Full cart management with quantity controls
  • Order Tracking: Real-time order status updates
  • Secure Checkout: Integrated payment processing
  • Order History: View past purchases and receipts
  • Campus Delivery: Pickup scheduling at convenient campus locations

Architecture

Frontend Stack

  • SvelteKit 5: Latest Svelte with runes ($state, $props, $derived) for reactive state management
  • TypeScript: Strict mode enabled for type safety
  • Tailwind CSS 4: Utility-first styling with custom design system
  • Custom Fonts: din-next-round (headers), fether (body text)

Backend Stack

  • Tauri 2.0: Native desktop runtime with multi-window support
  • Rust: High-performance backend with sub-millisecond command execution
  • In-Process Communication: Direct Rust-JavaScript bridge via Tauri IPC

Performance Characteristics

  • Startup Time: < 500ms cold start
  • Backend Commands: < 1ms average response time
  • Memory Usage: < 50MB baseline footprint
  • Bundle Size: < 10MB for the entire application

Project Structure

np-ui/
├── src/
│   ├── routes/                 # SvelteKit file-based routing
│   │   ├── auth/               # Authentication pages
│   │   ├── dormitory/          # Dormitory management
│   │   │   ├── admin/          # Admin room management
│   │   │   ├── my-bookings/    # User bookings
│   │   │   └── room/[id]/      # Room details & booking
│   │   ├── main/               # Main dashboard
│   │   ├── resources-booking/  # Resource booking
│   │   ├── shop/              # Campus shop
│   │   └── elearning/         # E-learning platform
│   ├── lib/
│   │   ├── components/         # Reusable UI components
│   │   ├── composables/         # Svelte composables
│   │   ├── types/              # TypeScript interfaces
│   │   └── utils/              # Utility functions
│   ├── app.css                 # Global styles
│   └── app.html                # HTML template
├── static/                      # Static assets (fonts, icons, images)
├── src-tauri/                   # Tauri application
│   ├── src/                     # Rust backend source
│   │   ├── auth.rs             # Authentication handlers
│   │   ├── config.rs           # Configuration management
│   │   └── lib.rs              # Main Tauri entry point
│   ├── capabilities/           # Tauri capabilities
│   ├── icons/                  # Application icons
│   └── tauri.conf.json         # Tauri configuration
├── content/                     # Documentation screenshots
├── eslint.config.js            # ESLint configuration
├── svelte.config.js            # SvelteKit configuration
├── tailwind.config.js          # Tailwind CSS configuration
├── tsconfig.json               # TypeScript configuration
└── vite.config.js             # Vite configuration

Getting Started

Prerequisites

  • Bun runtime (v1.0+)
  • Rust toolchain (v1.90+)
  • Tauri CLI (cargo install tauri-cli)

Installation

# Clone the repository
git clone https://github.com/your-org/np-ui.git
cd np-ui

# Install dependencies
bun install

# Start development server
bun run dev

Development Commands

Command Description
bun run dev Start development server (port 1420)
bun run build Build for production
bun run check Type checking with Svelte
bun run check:watch Type checking in watch mode
bun run lint Run Prettier and ESLint
bun run format Format code with Prettier

Building for Production

# Build the Tauri application
bun run tauri build

Backend Integration

NP-UI is designed to integrate seamlessly with the broader NP ecosystem:

  • NP-API: FastAPI-based REST API for persistent data storage
  • NP-Auth: Centralized authentication service
  • NP-Bookings: Dedicated booking management service
  • NP-Shop: Campus commerce and order management
  • NP-Learning: E-learning content and course management

The Tauri backend handles real-time operations with in-memory state, designed for eventual integration with the full NP microservices architecture.


API Reference

Tauri Commands (Rust Backend)

Command Description
register(email, password) Create a new user account
login(email, password) Authenticate user
logout() End current session
is_authorized() Check current auth status
get_resources() Fetch all dormitory rooms
get_resources_paginated(page, limit, filters) Paginated room listing
get_resource(id) Fetch single room details
make_resource1(name, type, location, capacity) Create new room
update_resource(id, ...) Update room details
delete_resource(id) Remove room
create_booking(resource_id, user_id, start, end) Create booking
confirm_booking(id) Confirm pending booking
cancel_booking(id) Cancel booking
check_availability(id, from, to) Check room availability
get_user_bookings(userId) Fetch user bookings
get_all_bookings() Fetch all bookings (admin)
get_current_user() Get logged-in user
get_products() Fetch shop products
create_order(cart_items, ...) Create shop order
get_order_history(userId) Fetch user order history
get_courses() Fetch available courses
enroll_course(course_id, user_id) Enroll in course
get_course_progress(course_id, user_id) Get learning progress

Design System

Color Palette

  • Primary: Lime Green (#84cc16) - Brand color for positive actions
  • Secondary: Emerald (#059669) - Welcome/auth panels
  • Accent: Blue (#1cb0f6) - Information and navigation
  • Warning: Yellow (#eab308) - Pending states
  • Danger: Red (#ef4444) - Destructive actions
  • Neutral: Stone/Gray scale - Text and backgrounds

Typography

  • din-next-round: Headings, buttons, and display text
  • fether: Body text and form inputs

UI Patterns

  • Native desktop application with window controls
  • Card-based layouts with elevation shadows
  • Form inputs with focus states and validation
  • Loading states with spinners
  • Error handling with toast notifications

License

MIT License - see LICENSE for details.


Built with by the Null-Pointers Team

About

A blazingly fast native desktop application built with Tauri, SvelteKit 5, and Rust

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors