Skip to content

2025 Google Solution Challenge Server Repository for Team Ondaum

Notifications You must be signed in to change notification settings

solutionchallenge/ondaum-server

Repository files navigation

Ondaum Server

📅 This README was written on May 15, 2025.

Go Google Gemini Google Login JWT MySQL Swagger Kubernetes GitHub Actions

🌍 OVERVIEW

Hello👋 This is team Ondaum. Ondaum is a pure Korean word, meaning 'a warm and genuine self'.

We want to help people around the world live healthier lives by being with Um, an AI professional psychological counseling companion, anytime and anywhere.

Let's start https://ondaum.revimal.me/

🛠 SKILLS

Architecture & Design

  • Architecture Pattern: Vertical Slice Architecture
  • Design Methodology: Domain-Driven Design (DDD)
  • Dependency Injection: Uber Fx - A dependency injection system for Go applications

Backend Development

  • Language: Go
  • Command Line: spf13/cobra - A Commander for modern Go CLI interactions
  • Configuration: spf13/viper - Go configuration with fangs
  • Testing: uber-go/gomock - A mocking framework for Go interfaces

Database & ORM

  • Main Database: MySQL
  • ORM: Bun - A fast and simple ORM for Go
  • Development DB: dolthub/go-mysql-server - In-memory MySQL server for development and testing

API & Communication

  • HTTP Framework: gofiber/fiber - Express inspired web framework built on top of Fasthttp
  • API Style: REST API
  • API Documentation: swaggo/swag - Swagger documentation generator for Go
  • Live API Documentation: Swagger UI
  • Authentication:

AI/ML Integration

External Libraries

📁 DIRECTORY

.
├── cmd/                # Application running commands
│
├── config/             # Configuration files
│
├── docs/               # Swagger documentations
│
├── internal/           # Private application code
│   ├── domain/         # Domain models and business logic
│   │   ├── chat/       # Chat domain models
│   │   ├── common/     # Common domain models
│   │   ├── diagnosis/  # Diagnosis domain models
│   │   └── user/       # User domain models
│   │
│   ├── handler/        # HTTP request handlers
│   │   ├── future/     # Future-Job handlers
│   │   ├── rest/       # REST-API handlers
│   │   └── websocket/  # Websocket handlers
│   │
│   ├── dependency/     # Dependency injection
│   │
│   └── entrypoint/     # Application entry points
│       └── http/       # HTTP server entrypoint
│
├── migration/          # Database migration files
│   └── sql/            # Migration SQL scripts
│
├── pkg/                # Public library code
│   ├── database/       # Database utilities
│   │   ├── mysql/      # MySQL implementation
│   │   └── memdb/      # In-memory database
│   │
│   ├── future/         # Future utilities
│   │   └── database/   # Database-backed implementation
│   │
│   ├── http/           # HTTP utilities
│   │
│   ├── jwt/            # JWT authentication
│   │
│   ├── llm/            # LLM integration
│   │   └── gemini/     # Google Gemini integration
│   │
│   ├── oauth/          # OAuth integration
│   │   └── google/     # Google OAuth
│   │
│   ├── utils/          # Common utilities
│   │
│   └── websocket/      # WebSocket utilities
│
├── resource/           # Static resources
│   ├── diagnosis/      # Diagnosis resources
│   └── llm/            # LLM resources
│       ├── attachment/ # LLM attachments
│       └── prompt/     # LLM prompts
│
├── test/               # Test files
│   └── mock/           # Test mocks
│
├── .deploy/            # Deployment configurations
│
├── .github/            # GitHub related files
│   └── workflows/      # GitHub Actions workflows
│
├── main.go             # Main application entry
└── go.mod              # Go module definition

🚀 LAUNCH

# 1. Install dependencies
go mod download

# 2. Set up environment variables
vi .envrc

# 3. Apply environment variables
source .envrc

# 4. Start the server with local configurations
go run main.go http -n "local"

⏥ ARCHITECTURE

SERVER-ARCHITECTURE

🏎️ PERFORMANCE

SERVER-PERFORMANCE Benchmarked on a GKE Managed Pod (180 mCPU / 256 MiB)

📱 FEATURE

  • AI Counseling With Um
  • Psychological Assessments
    • International standard tests PHQ-9 / GAD-7 / PSS
  • AI Analysis of Conversation Content
    • Summary and organization of the conversation
    • Sharing feedback and areas for improvement

✨ VALUE

  • Available for consultation anytime, anywhere
  • Personalized consultation possible
  • Reduced barriers to seeking counseling
  • Access to a pre-trained professional psychological counseling AI

About

2025 Google Solution Challenge Server Repository for Team Ondaum

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published