An AI-powered retail application that generates custom shop inventories for fictional voyages using Google Gemini AI.
- Voyage Selection: Choose from multiple voyage archetypes (Space, Pirate, Jungle, Cyberpunk, Steampunk, Post-Apocalyptic)
- Mission Description: Describe your specific mission or adventure
- AI-Generated Inventory: Get 3-5 unique survival items tailored to your voyage and mission
- Image Generation: Each item includes AI-generated visualizations
- Arm64 Optimized: Built specifically for AWS Graviton/Arm64 architecture
- Next.js 14+ with App Router
- React 18 with TypeScript
- Tailwind CSS for styling
- Lucide React for icons
- Python 3.11+ with FastAPI
- Google Generative AI (Gemini) for content generation
- UVicorn for ASGI server
- Docker with Arm64 optimization
- Docker Compose for orchestration
- Docker and Docker Compose
- Google Gemini API Key (optional for full AI functionality)
- Arm64/AWS Graviton architecture (for optimal performance)
git clone <repository-url>
cd HackSheff10# Copy environment files
cp .env.example .env
cp backend/.env.example backend/.env
# Edit the files and add your Gemini API Key
# Get your key from: https://makersuite.google.com/app/apikey# For Arm64 architecture (recommended for AWS Graviton)
docker buildx build --platform linux/arm64 -t voyage-ai-backend ./backend
# Start the application
docker-compose up --build- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Space Exploration - Journey through the cosmos
- Pirate Adventure - Sail the high seas
- Jungle Expedition - Navigate dense jungles
- Cyberpunk Mission - Hack the system
- Steampunk Quest - Victorian mechanical marvels
- Wasteland Survival - Post-apocalyptic adventures
GET /Returns server status and architecture information.
GET /architectureReturns detailed system architecture information.
POST /generate-inventory
Content-Type: application/json
{
"voyage_type": "space",
"mission_description": "We are going to Mars to rescue a lost rover..."
}cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run dev- Base Image:
python:3.11-slimfor minimal footprint - Arm64 Optimization: Built specifically for Arm64/AWS Graviton
- Security: Non-root user execution
- Health Checks: Automated health monitoring
- Architecture Display: Prints system info on startup for demo purposes
- Base Image:
node:18-slimfor optimal performance - Multi-stage Build: Optimized production builds
- Arm64 Ready: Compatible with Arm64 architecture
- Health Monitoring: Built-in health checks
The application prominently displays the server architecture to demonstrate Arm64 compatibility:
- Header Badge: Shows current architecture (e.g., "aarch64")
- Footer Info: Detailed system information
- Backend Prints: Console output showing architecture on startup
- Text Generation: Creates contextual survival items
- Image Generation: Generates item visualizations (placeholder for demo)
- Fallback System: Works even without API keys using predefined items
- Tools: Essential equipment for the voyage
- Safety: Protective and survival gear
- Navigation: Location and guidance devices
- Communication: Information transmission tools
- Medical: Health and treatment supplies
- CORS Configuration: Proper cross-origin resource sharing
- Input Validation: Pydantic models for data validation
- Non-root Execution: Containers run as non-privileged users
- Health Checks: Automated monitoring and recovery
- Mobile First: Optimized for all device sizes
- Progressive Enhancement: Works on all browsers
- Loading States: Smooth user experience during AI generation
- Error Handling: Graceful fallbacks and user feedback
- Architecture Demo: Show the Arm64 optimization in the header/footer
- Multiple Voyage Types: Demonstrate different AI-generated inventories
- Mission Variety: Test with creative mission descriptions
- Fallback Mode: Works even without Gemini API key
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is part of the HackSheff10 hackathon.
- Google Gemini: For AI content generation
- Next.js Team: For the excellent React framework
- FastAPI Team: For the modern Python web framework
- Tailwind CSS: For the utility-first CSS framework