Skip to content

Latest commit

Β 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸͺ‘ Coseat

The most seamless seating arrangement organizer you could ever use

Features β€’ Demo β€’ Getting Started β€’ Tech Stack β€’ Contributing

Next.js TypeScript Firebase License


πŸ“– About

Coseat is a modern, collaborative seating arrangement application designed for event organizers, wedding planners, and venue managers. Create beautiful seating layouts with an intuitive drag-and-drop canvas, collaborate in real-time with your team, and make every seat count.

✨ Why Coseat?

  • Infinite Canvas - Design layouts of any size with zoom and pan controls
  • Real-time Collaboration - Share event codes and work together seamlessly
  • Drag & Drop Interface - Intuitive controls for chairs, tables, and blocks
  • Named Seating - Assign names to chairs and manage guest lists
  • Multiple Events - Organize unlimited events from a single dashboard
  • Lightning Fast - Built with performance in mind using Next.js and Firebase

πŸš€ Features

🎨 Interactive Canvas

  • Drag and drop chairs and blocks anywhere on an infinite canvas
  • Zoom and pan to navigate large seating arrangements
  • Smooth animations and responsive interactions

πŸ‘₯ Collaboration

  • Create events with unique shareable codes
  • Invite team members to collaborate in real-time
  • Role-based access control for event members

πŸͺ‘ Flexible Seating

  • Add and position chairs with custom names
  • Create blocks/tables of custom sizes
  • Edit and delete elements with context menus

πŸ“± Responsive Design

  • Beautiful UI built with Tailwind CSS and shadcn/ui
  • Works seamlessly on desktop and mobile devices
  • Dark mode support (coming soon)

🎬 Demo

🚧 Demo coming soon! Check back later for screenshots and video walkthrough.


🏁 Getting Started

Prerequisites

  • Node.js 18.x or higher
  • pnpm (recommended) or npm/yarn
  • Firebase account with Firestore enabled

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/coseat.git
    cd coseat
  2. Install dependencies

    pnpm install
  3. Set up Firebase

    Create a .env.local file in the root directory:

    # Firebase Client Configuration
    NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key
    NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
    NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
    NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
    NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
    NEXT_PUBLIC_FIREBASE_APP_ID=your_app_id
    
    # Firebase Admin SDK
    FIREBASE_ADMIN_PROJECT_ID=your_project_id
    FIREBASE_ADMIN_CLIENT_EMAIL=your_client_email
    FIREBASE_ADMIN_PRIVATE_KEY=your_private_key
  4. Run the development server

    pnpm dev
  5. Open your browser

    Navigate to http://localhost:3000

Building for Production

pnpm build
pnpm start

πŸ› οΈ Tech Stack

Frontend

Backend & Database

State Management

  • Zustand - Lightweight state management

UI/UX


πŸ“ Project Structure

coseat/
β”œβ”€β”€ actions/              # Server actions
β”‚   β”œβ”€β”€ auth/            # Authentication actions
β”‚   β”œβ”€β”€ block/           # Block CRUD operations
β”‚   β”œβ”€β”€ chair/           # Chair CRUD operations
β”‚   β”œβ”€β”€ events/          # Event management
β”‚   └── profile/         # User profile actions
β”œβ”€β”€ app/                 # Next.js App Router
β”‚   β”œβ”€β”€ (auth)/         # Auth routes
β”‚   β”œβ”€β”€ (canvas)/       # Canvas/event routes
β”‚   β”œβ”€β”€ (home)/         # Home dashboard
β”‚   └── page.tsx        # Landing page
β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ ui/             # shadcn/ui components
β”‚   └── ...
β”œβ”€β”€ hooks/              # Custom React hooks
β”œβ”€β”€ lib/                # Utilities and configs
β”‚   β”œβ”€β”€ firebase/       # Firebase configuration
β”‚   β”œβ”€β”€ types.ts        # TypeScript types
β”‚   └── utils.ts        # Helper functions
β”œβ”€β”€ store/              # Zustand stores
└── public/             # Static assets

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style and conventions
  • Write meaningful commit messages
  • Test your changes thoroughly
  • Update documentation as needed

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


Made with ❀️ for event organizers everywhere

Β© 2025 CoSeat. Making every seat count.

About

coseat is a web app that allows event organizers to create personalized seating arrangement for events, easily shareable to attendees for a seamless accomodation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages