Skip to content

tutorcruncher/Eurus

Repository files navigation

Eurus - LessonSpace Integration Service

     ___           ___           ___           ___           ___     
    /  /\         /__/\         /  /\         /__/\         /  /\    
   /  /:/_        \  \:\       /  /::\        \  \:\       /  /:/_   
  /  /:/ /\        \  \:\     /  /:/\:\        \  \:\     /  /:/ /\  
 /  /:/ /:/_   ___  \  \:\   /  /:/~/:/    ___  \  \:\   /  /:/ /::\ 
/__/:/ /:/ /\ /__/\  \__\:\ /__/:/ /:/___ /__/\  \__\:\ /__/:/ /:/\:\
\  \:\/:/ /:/ \  \:\ /  /:/ \  \:\/:::::/ \  \:\ /  /:/ \  \:\/:/~/:/
 \  \::/ /:/   \  \:\  /:/   \  \::/~~~~   \  \:\  /:/   \  \::/ /:/ 
  \  \:\/:/     \  \:\/:/     \  \:\        \  \:\/:/     \__\/ /:/  
   \  \::/       \  \::/       \  \:\        \  \::/        /__/:/   
    \__\/         \__\/         \__\/         \__\/         \__\/    
 

codecov

Named after the Greek god of the east wind, Eurus serves as a gateway between lesson scheduling and actual virtual lessons,

A FastAPI service that integrates with LessonSpace to create and manage virtual learning spaces.

Features

  • Create virtual learning spaces with tutor and student access
  • Generate unique, authenticated URLs for each participant
  • Comprehensive API documentation with Swagger UI
  • Automatic documentation generation

Prerequisites

  • Python 3.12+
  • LessonSpace API credentials

Installation

  1. Clone the repository:
git clone <repository-url>
cd eurus
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Create a .env file in the project root:
APP_NAME=Eurus
DEBUG=True
LESSONSPACE_API_KEY=your_api_key_here
LESSONSPACE_API_URL=https://api.thelessonspace.com/v2
SENTRY_DSN=your_sentry_dsn_here  # Optional

Running the Service

Start the service using:

make run

Or directly with uvicorn:

uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

API Documentation

The API documentation is automatically generated from the FastAPI application and provides:

  • Interactive API documentation with Swagger UI
  • Request/response examples
  • Authentication requirements
  • Schema definitions
  • API endpoints and their parameters

Viewing Documentation

There are two ways to access the API documentation:

  1. Live Documentation (when service is running):

    • Open http://{BASE_URL}/docs in your browser
    • This shows the current state of your API
  2. Static Documentation (for reference/versioning):

    # Generate the documentation
    make docs
    
    # View the static documentation
    make serve-docs

    Then open http://localhost:8080 in your browser

Development

Running Tests

make test

Code Style

The project uses Ruff for code formatting and linting:

make format
make lint

Architecture

  • FastAPI: Modern, fast web framework for building APIs
  • Logfire: Structured logging with sensitive data scrubbing
  • Swagger UI: Interactive API documentation

About

An interface service for Lesson Space scheduling.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published