npx agentspec-cli install 66c3a649-da7d-4abd-87e5-d67632f3a5d8 --file-type gemini-md→ GEMINI.md
# Phantom Equinox - Project Context
## Overview
**Phantom Equinox** is a premium Meeting Room Booking Application built with modern web technologies. It is designed to handle multi-tenant corporate environments (Companies), allowing users to book meeting rooms across different buildings and floors.
## Technology Stack
### Core
- **Framework:** Next.js 16 (App Router)
- **Language:** TypeScript
- **Style:** Tailwind CSS 4
- **Animation:** Framer Motion
### Backend & Database
- **Platform:** Supabase (PostgreSQL)
- **Auth:** Supabase Auth (with Middleware protection)
- **Email:** Resend (implied by dependencies)
### UI Components
- **Icons:** Lucide React
- **Forms:** React Hook Form + Zod resolvers
- **Notifications:** Sonner
- **Theming:** next-themes (System, Light, Dark)
## Architecture & Directory Structure
```
/
├── app/ # Next.js App Router pages and layouts
│ ├── admin/ # Administrative interfaces
│ ├── bookings/ # Booking management
│ ├── login/ # Authentication pages
│ ├── rooms/ # Room browsing and details
│ ├── schedule/ # Calender/Schedule views
│ ├── settings/ # User settings
│ ├── api/ # API Routes (if any)
│ ├── globals.css # Global styles and Tailwind directives
│ └── layout.tsx # Root layout with Providers
├── components/ # Reusable UI components
├── db/ # Database schemas and SQL scripts
│ └── schema.sql # Main database definition
├── lib/ # Utility functions and shared logic
│ └── supabase/ # Supabase client initialization
├── public/ # Static assets
└── types/ # TypeScript type definitions
```
## Data Model
### Core Entities
1. **Companies**: Tenants of the system.
2. **Profiles**: Users linked to `auth.users`, containing role (`admin` vs `user`) and company association.
3. **Buildings**: Physical locations owned by companies.
4. **Floors**: Levels within buildings.
5. **Rooms**: Bookable entities with capacity and amenities.
6. **Bookings**: Reservations linking Users and Rooms with time slots and status.
### Authentication & Authorization
- **RLS (Row Level Security)** is enabled on all tables.
- **Policies:**
- Public read access for Buildings, Floors, and Rooms.
- Users can see all bookings (to avoid double booking) but only edit their own.
- Admins can manage all bookings.
## Development
### Commands
- \`npm run dev\`: Start development server
- \`npm run build\`: Build for production
- \`npm run lint\`: Run ESLint
### Key Conventions
- **Styling**: Utility-first with Tailwind.
- **State Management**: Server Components for data fetching where possible; Client Components for interactivity.
- **Database Access**: Direct Supabase calls or Server Actions (implied by typical Next.js 14+ patterns, though `actions` folder exists).
## Current Status
- **Auth**: Implemented via Supabase Middleware.
- **Database**: Schemas defined for core entities.
- **Routing**: Skeleton routes exist for Admin, Bookings, Login, Rooms, Schedule, Settings.
## Admin Guide
### 1. Setup
To enable the Admin backend, you must run the following SQL scripts in your Supabase SQL Editor:
1. `db/01_auth_triggers.sql`: **Required**. Creates a user profile automatically upon sign-up.
2. `db/02_admin_policies.sql`: **Required**. Secures the database so only Admins can manage resources.
### 2. Creating an Admin
There is no UI to create the *first* admin. You must promote a user manually:
1. Sign up in the application.
2. Open `db/03_promote_admin.sql`.
3. Replace the email with your email and run the script in Supabase.
### 3. Features
Once promoted, you can access `/admin` to:
- **Dashboard**: Approve or Reject pending bookings.
- **Buildings**: Manage office buildings (`/admin/buildings`).
- **Floors**: Manage floors within buildings (`/admin/floors`).
- **Rooms**: Manage meeting rooms (`/admin/rooms`).
Gemini Project Context: Upex My Mentor
This is a **Next.js 15** web application for **Upex My Mentor**, a marketplace designed to connect senior tech mentors with students and professionals. The project is built with **TypeScript** and styled using **Tailwind CSS** with **shadcn/ui** components. The preferred runtime environment is **Bun**.
by AgentHub Crawler
Gemini Context: LIDS Repository
**Name:** LIDS (Live Interactive Dashboard) **Purpose:** Frontend-first sales software for Admiral Energy solar reps. **Type:** Monorepo (npm workspaces). **Stack:** React (Vite), TypeScript, Tailwind CSS, Dexie.js (Offline-first), Express (Proxy).
by AgentHub Crawler
Project Context: Musicgy
Musicgy is a collaborative music listening platform built with Next.js 16. It allows multiple users to join a room, search for songs from Netease Cloud Music, add them to a shared queue, and listen in sync. The application uses Redis for real-time state management (queue, current song, user presence, votes) and Next.js App Router for both frontend and backend logic.
by AgentHub Crawler
Sign in to leave a comment.