A comprehensive, mobile-first equipment rental and checkout system designed for educational institutions, starting with film/cinema departments. Built with React, TypeScript, and modern web technologies.
The Equipment Rental System is a production-ready web application that revolutionizes how educational institutions manage their equipment resources. It provides an intuitive, mobile-first platform that eliminates scheduling conflicts, improves equipment utilization, and enhances the learning experience for students and faculty.
- Multi-tenant architecture with department-level isolation
- Role-based access control (Student, Faculty, Manager, Admin)
- Real-time equipment availability with conflict detection
- Mobile-first responsive design with PWA capabilities
- Calendar-based booking interface with drag-and-drop
- Comprehensive audit logging and analytics
- Email notification system with automated reminders
- Barcode/QR code support for equipment identification
- Node.js 18.0.0 or higher
- npm 9.0.0 or higher
- Docker 24.0.0 or higher (for development services)
- Clone the repository:
git clone https://github.com/your-org/gear-pool.git
cd gear-pool
- Install dependencies:
npm install
- Set up environment:
cp .env.example .env.development
# Edit .env.development with your configuration
- Start development server:
npm run dev
- Open in browser:
http://localhost:5173
- React 18 with TypeScript for type-safe development
- Vite for fast build tooling and hot reload
- Tailwind CSS for utility-first styling
- shadcn/ui for accessible UI components
- React Router v6 for client-side routing
- TanStack Query for server state management
- React Hook Form with Zod validation
- Node.js 18 with Express framework
- PostgreSQL 15 with Prisma ORM
- Redis for caching and session management
- JWT authentication with refresh tokens
- Nodemailer for email notifications
- Multer for file uploads
- Docker containerization
- GitHub Actions for CI/CD
- ESLint & Prettier for code quality
- Vitest for unit testing
- Playwright for E2E testing
Comprehensive documentation is available in the docs/
folder:
- Project Overview - Detailed project description and goals
- Development Guide - Complete development setup and workflow
- API Documentation - RESTful API specification and examples
- Database Schema - Multi-tenant database design
- Architecture - System architecture and design patterns
- Security - Security implementation and best practices
- Deployment - Production deployment with Docker
- Configuration - Environment variables and settings
- Testing Strategy - Comprehensive testing approach
- User Guide - End-user documentation
The system uses shadcn/ui components for a consistent, accessible design:
- Modern component library with Radix UI primitives
- Fully customizable with CSS variables
- Dark/light theme support
- Mobile-optimized touch interactions
- ARIA-compliant accessibility features
- Multi-tenant data isolation with row-level security
- JWT-based authentication with automatic refresh
- Role-based permissions for granular access control
- Input validation and sanitization
- Rate limiting and DDoS protection
- Comprehensive audit logging
- GDPR/CCPA compliance features
- Progressive Web App (PWA) capabilities
- Responsive design optimized for all screen sizes
- Touch-friendly interface with swipe gestures
- Offline browsing of equipment catalog
- Camera integration for barcode scanning (planned)
- Push notifications for reservation updates
Comprehensive testing strategy with multiple levels:
- Unit Tests - Component and service testing with Vitest
- Integration Tests - API and database integration testing
- E2E Tests - Full user workflow testing with Playwright
- Performance Tests - Load testing with Artillery
- Security Tests - Automated security scanning
# Run all tests
npm run test
# Run with coverage
npm run test:coverage
# Run E2E tests
npm run test:e2e
# Start development environment
docker-compose -f docker-compose.dev.yml up -d
npm run dev
# Build and deploy
npm run build
docker-compose -f docker-compose.prod.yml up -d
We welcome contributions! Please see our contributing guidelines:
- 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 strict mode
- Write tests for new features
- Use conventional commit messages
- Ensure accessibility compliance
- Mobile-first responsive design
- β Phase 1: Frontend foundation and UI components
- π§ Phase 2: Backend API development (In Progress)
- π Phase 3: Authentication and user management
- π Phase 4: Equipment and reservation system
- π Phase 5: Notification and email system
- π Phase 6: Analytics and reporting
- π Phase 7: Production deployment
- Film/Cinema departments
- Photography programs
- Art and design schools
- Engineering labs
- Science departments
- Cameras and lenses
- Audio recording equipment
- Lighting systems
- Computer hardware
- Laboratory instruments
- Art supplies and tools
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Mobile browsers (iOS 13+, Android 8+)
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@gear-pool.com or join our Discord community.
- Mobile Apps - Native iOS and Android applications
- Advanced Analytics - Equipment utilization dashboards
- AI Recommendations - Smart equipment suggestions
- Integration APIs - Connect with existing systems
- Multi-language - International localization
- WhatsApp/SMS - Additional notification channels