Skip to content

junho85/garden10

Repository files navigation

Garden10 (정원사들 시즌10)

A FastAPI-based attendance management system for tracking daily GitHub commits in a 100-day challenge community. The system automatically monitors participants' GitHub activities and maintains attendance records from March 10, 2025 to June 17, 2025.

🌟 Features

  • Automated Attendance Tracking: Monitors GitHub commits daily to mark attendance
  • User Dashboard: Personal statistics and progress visualization
  • Admin Panel: User management and system administration
  • GitHub Integration: OAuth authentication and API integration
  • AI-powered Messages: Personalized encouragement messages using OpenAI
  • RESTful API: Well-documented API with Swagger/ReDoc support
  • Responsive UI: Mobile-friendly web interface

🔗 Links

📋 Prerequisites

  • Python 3.8+
  • PostgreSQL or SQLite
  • GitHub OAuth App credentials
  • OpenAI API key (optional, for AI messages)

🚀 Installation

  1. Clone the repository
git clone https://github.com/junho85/garden10.git
cd garden10
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Configure the application
    • Copy config.example.yaml to config.yaml
    • Update configuration with your settings

🏃 Running the Application

Development Mode

# Run without scheduler (for development)
python -m app.main --port=8010

Production Mode

# Run with automated attendance checking
python -m app.main --scheduler --port=8010

📁 Project Structure

garden10/
├── app/
│   ├── main.py           # Application entry point
│   ├── config.py         # Configuration management
│   ├── models/           # SQLAlchemy models
│   ├── schemas/          # Pydantic schemas
│   ├── services/         # Business logic
│   ├── routers/          # API endpoints
│   ├── static/           # Frontend assets
│   └── utils/            # Utility functions
├── test/                 # Test suite
├── docs/                 # Documentation
├── config.yaml           # Configuration file
└── requirements.txt      # Dependencies

🏗️ Architecture

For detailed architecture documentation, see Architecture Documentation

📚 API Documentation

API documentation is available through Swagger UI and ReDoc:

Local Development

Production

🚀 Deployment

Deploy to production:

# Pull latest changes
git pull

# Install/update dependencies
pip install -r requirements.txt

# Run with scheduler enabled
python -m app.main --scheduler --port=8010

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published