A modern, interactive seat selection interface built with React, TypeScript, and Tailwind CSS.
- π― Interactive Seat Selection - Click to select/deselect available seats
- π¨ Visual Status Indicators - Color-coded seats (Available/Selected/Occupied)
- π± Responsive Design - Works seamlessly on desktop and mobile devices
- β‘ Fast Performance - Built with Vite and optimized for speed
- π§ TypeScript - Full type safety and excellent developer experience
- π³ Docker Ready - Containerized for easy deployment
# Clone the repository
git clone https://github.com/attensys/seat-ui.git
cd seat-ui
# Install dependencies
bun install
# Start development server
bun run devThe application will be available at http://localhost:3000
# Build for production
bun run build
# Preview production build
bun run previewOur Docker images support multiple architectures including x86_64 (Intel/AMD) and ARM64 (Apple Silicon, Raspberry Pi 4).
# Pull and run the latest image (auto-selects your platform)
docker run -p 80:80 attensys/seat-ui:latest
# For Raspberry Pi 4 or other ARM64 devices, specify platform if needed:
docker pull --platform linux/arm64 attensys/seat-ui:latest
docker run --platform linux/arm64 -p 80:80 attensys/seat-ui:latest- β linux/amd64 - Intel/AMD 64-bit systems
- β linux/arm64 - ARM 64-bit (Apple Silicon, Raspberry Pi 4, etc.)
For detailed multi-architecture information, see MULTI_ARCH_DOCKER.md.
# Run our test script to verify multi-arch support
./test-multiarch.sh# Build the Docker image
bun run docker:build
# Run the container
bun run docker:runThe application will be available at http://localhost
This project uses GitHub Actions for continuous integration and deployment:
# Run the setup script to verify everything is ready
./setup-ci.sh- Testing & Linting - Runs on every push and pull request
- Docker Build - Builds and pushes images to Docker Hub
- Security Scanning - Vulnerability scanning with Trivy
- Multi-platform Support - Builds for AMD64 and ARM64 architectures
Images are automatically built and pushed to Docker Hub:
attensys/seat-ui:latest- Latest stable build from main branchattensys/seat-ui:develop- Development buildsattensys/seat-ui:v*- Tagged releases
To set up the CI/CD pipeline for your own repository:
-
Fork the repository
-
Configure Docker Hub secrets in your GitHub repository settings:
DOCKER_USERNAME - Your Docker Hub username DOCKER_PASSWORD - Your Docker Hub access token
-
Update the Docker image name in
.github/workflows/ci-cd.yml:env: DOCKER_IMAGE: your-username/seat-ui
-
Create Docker Hub repository:
- See DOCKER_HUB_SETUP.md for detailed instructions
| Command | Description |
|---|---|
bun run dev |
Start development server |
bun run build |
Build for production |
bun run preview |
Preview production build |
bun run lint |
Run ESLint |
bun run lint:fix |
Fix ESLint errors |
bun run format |
Format code with Prettier |
bun run format:check |
Check code formatting |
bun run docker:build |
Build Docker image |
bun run docker:run |
Run Docker container |
- Frontend Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Package Manager: Bun
- Containerization: Docker with Nginx
- CI/CD: GitHub Actions
- Code Quality: ESLint + Prettier
src/
βββ components/ # Reusable UI components
β βββ Header.tsx # Navigation header
β βββ Seat.tsx # Interactive seat component
βββ pages/ # Page components
β βββ Home.tsx # Main seat selection page
βββ hooks/ # Custom React hooks
βββ utils/ # Utility functions
βββ App.tsx # Main application component
βββ main.tsx # Application entry point
βββ index.css # Global styles
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript best practices
- Use semantic commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all CI checks pass
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email: support@attensys.com
- π Issues: GitHub Issues
- π Documentation: Wiki
- Add multi-row seat layouts
- Implement seat reservation system
- Add real-time seat availability updates
- Mobile app with React Native
- Advanced seat filtering and search
- Integration with payment systems