Skip to content

Latest commit

 

History

History

README.md

Oddiya Documentation

Complete documentation for the Oddiya AI-powered travel planner

📖 Quick Navigation

📋 현재 구현 상태 (최신): Current Implementation Status - 2025-11-04 업데이트

New to Oddiya? Start here: Getting Started Guide

Ready to deploy? Go to: Deployment Guide

Need API reference? Check: Mobile API Testing


📁 Documentation Structure

🚀 Getting Started

Document Description Time
Getting Started Complete setup from scratch to deployment 40 min
Quick Reference Common commands and quick tips 5 min

🏗️ Architecture

Document Description
System Overview Complete system architecture and design
Token Management JWT authentication flow

💻 Development

Document Description
Environment Variables All configuration settings
OAuth Setup Google/Apple OAuth configuration
No Hardcoding Guide LLM-first development principles
Local Testing Test backend services locally
Mobile Local Testing Test mobile app with local backend
Configuration Management Manage configs across environments
Development Plan Phased development strategy
Testing Guide Testing standards and practices

🚢 Deployment

Document Description Cost
Deployment Guide Complete deployment walkthrough $0-10/mo
GitHub Actions CI/CD pipeline setup Free
API Setup External API integrations Free tier
Infrastructure Infrastructure as code AWS free tier
CI/CD Continuous integration/deployment Free

🔌 API & Integrations

Document Description
Mobile API Testing REST API reference and testing
External APIs Third-party API integrations

📱 Mobile

Document Description
Mobile README Mobile app overview
Quick Start Build and deploy mobile app (15 min)
Architecture Mobile app architecture
Planning Mobile feature planning
Google OAuth Android Android OAuth setup
Google OAuth Summary OAuth implementation details
Authentication Mobile auth flow

🧪 Testing

Document Description
Integration & Load Testing Performance testing guide
How to Run Tests Test execution instructions
Load Tests Locust load testing setup

🎯 Common Use Cases

I want to...

Set up the project for the first timeGetting Started Guide

Deploy to AWSDeployment Guide

Build Android/iOS appMobile Quick Start

Configure Google OAuthOAuth Setup

Test the API locallyLocal Testing

Understand the architectureSystem Overview

Set up CI/CDGitHub Actions

Integrate external APIsAPI Setup Guide


📊 Project Overview

Technology Stack

Backend:

  • Spring Boot 3.2 (Java 21)
  • Python FastAPI (LLM Agent)
  • Redis 7.4 (caching)

Frontend:

  • React Native 0.75 + Expo
  • Redux Toolkit

AI:

  • Google Gemini 2.0 Flash
  • LangChain + LangGraph

Infrastructure:

  • Docker Compose (dev/prod)
  • AWS EC2 (free tier)
  • Expo EAS Build (cloud builds)

Project Structure

oddiya/
├── docs/                      # This documentation
├── services/                  # Backend microservices
│   ├── api-gateway/          # API Gateway + Web UI
│   ├── auth-service/         # OAuth authentication
│   ├── plan-service/         # Travel planning
│   └── llm-agent/            # AI planning engine
├── mobile/                    # React Native mobile app
├── scripts/                   # Automation scripts
└── infrastructure/            # Docker & deployment configs

🔧 Quick Commands

Local Development

# Start all services
docker-compose up -d

# Stop services
docker-compose down

# View logs
docker-compose logs -f

Mobile Development

cd mobile

# Login to Expo
eas login

# Build Android + iOS
eas build --platform all

# Run on device
npm start

Testing

# Run integration tests
./scripts/test-integration.sh

# Run load tests
cd tests/load && locust -f locustfile.py

💰 Cost Summary

Item Free Tier After 12 Months
AWS EC2 t2.micro $0 ~$8.50/mo
Gemini API $0 $0
Expo EAS Build $0 (30/mo) $0 or $29/mo
Total $0/mo ~$10/mo

Store Deployment:

  • Google Play: $25 (one-time)
  • Apple App Store: $99/year

📝 Contributing

Before making changes:

  1. Read CLAUDE.md for project guidelines
  2. Follow No Hardcoding Guide
  3. Check Development Plan for priorities
  4. Run tests before committing

🆘 Need Help?

  1. Check relevant documentation above
  2. Search GitHub Issues
  3. Create a new issue with details

Last Updated: 2025-11-03 Version: 1.0.0