Project Overview AWSQueue is an intelligent virtual queuing system designed for any business or organization that manages customer queues. It enables customers to book, monitor, and manage appointments without waiting in physical lines, using real-time queue optimization, analytics, and notifications.
- User Authentication: JWT-based secure authentication system
- Smart Booking System: Intelligent slot allocation with queue optimization
- Admin Dashboard: Comprehensive management interface for administrators
- Real-time Notifications: SMS/Email alerts for appointments and updates
- Live Wait-Time Prediction: ML-powered wait time estimation
- Cloud Analytics: Traffic analysis and performance metrics
- Document Management: Secure file upload and storage
- Java Spring Boot: REST APIs, service logic, user management
- Spring Security: Role-based access control and JWT authentication
- Spring Data JPA: Database operations and entity management
- PostgreSQL: Primary database for data persistence
- React 18: Modern UI framework with TypeScript
- Tailwind CSS: Utility-first CSS framework
- React Router: Client-side routing
- React Query: Server state management
- React Hook Form: Form handling and validation
- EC2/ECS: Application hosting and containerization
- RDS: Managed PostgreSQL database
- S3: Document and file storage
- SNS/SES: Notification services (SMS/Email)
- CloudWatch: Logging and monitoring
- API Gateway: API management and rate limiting
- Docker: Containerization
- Terraform: Infrastructure as Code
- GitHub Actions: CI/CD pipeline
- Swagger/OpenAPI: API documentation
- Postman: API testing
smartqueue/
├── backend/ # Spring Boot application
├── frontend/ # React frontend application
├── infrastructure/ # AWS infrastructure code
├── database/ # Database schemas and migrations
├── postman/ # API testing collections
├── .github/workflows/ # CI/CD pipelines
└── docs/ # Documentation
- Java 17+
- Maven 3.8+
- Node.js 18+ and npm
- Docker & Docker Compose
- AWS CLI configured
- PostgreSQL 14+
- Clone the repository
git clone https://github.com/shubam3/awsqueue.git
cd awsqueue
2. **Set up environment variables**
```bash
cp env.example .env
# Edit .env with your configuration
-
Start local services
docker-compose up -d
-
Run the backend application
cd backend ./mvnw spring-boot:run -
Run the frontend application (in a new terminal)
cd frontend npm install npm start -
Access the application
- Frontend: http://localhost:3000
- API: http://localhost:8080
- Swagger UI: http://localhost:8080/swagger-ui.html
- Admin Dashboard: http://localhost:8080/admin
- Swagger UI: http://localhost:8080/swagger-ui.html
- OpenAPI Spec: http://localhost:8080/v3/api-docs
# Backend tests
cd backend
./mvnw test
# Frontend tests
cd frontend
npm testImport the Postman collection from postman/awsqueue-api.postman_collection.json
cd infrastructure/terraform
terraform init
terraform plan
terraform applydocker-compose -f docker-compose.prod.yml up -d- CloudWatch Dashboard: Real-time application metrics
- Application Logs: Centralized logging with CloudWatch
- Performance Metrics: Response times, error rates, and throughput
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Real-world Problem Solving: Addresses actual customer experience issues at scale
- Scalable Architecture: Cloud-native design that can handle enterprise-level traffic
- Modern Tech Stack: Demonstrates proficiency with current industry standards
- DevOps Integration: Complete CI/CD pipeline with infrastructure as code
- Comprehensive Testing: Unit, integration, and API testing coverage
- Production Ready: Monitoring, logging, and security best practices