___ ___ ___ ___ ___
/ /\ /__/\ / /\ /__/\ / /\
/ /:/_ \ \:\ / /::\ \ \:\ / /:/_
/ /:/ /\ \ \:\ / /:/\:\ \ \:\ / /:/ /\
/ /:/ /:/_ ___ \ \:\ / /:/~/:/ ___ \ \:\ / /:/ /::\
/__/:/ /:/ /\ /__/\ \__\:\ /__/:/ /:/___ /__/\ \__\:\ /__/:/ /:/\:\
\ \:\/:/ /:/ \ \:\ / /:/ \ \:\/:::::/ \ \:\ / /:/ \ \:\/:/~/:/
\ \::/ /:/ \ \:\ /:/ \ \::/~~~~ \ \:\ /:/ \ \::/ /:/
\ \:\/:/ \ \:\/:/ \ \:\ \ \:\/:/ \__\/ /:/
\ \::/ \ \::/ \ \:\ \ \::/ /__/:/
\__\/ \__\/ \__\/ \__\/ \__\/
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.
- 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
- Python 3.12+
- LessonSpace API credentials
- Clone the repository:
git clone <repository-url>
cd eurus
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- 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
Start the service using:
make run
Or directly with uvicorn:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
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
There are two ways to access the API documentation:
-
Live Documentation (when service is running):
- Open http://{BASE_URL}/docs in your browser
- This shows the current state of your API
-
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
make test
The project uses Ruff for code formatting and linting:
make format
make lint
- FastAPI: Modern, fast web framework for building APIs
- Logfire: Structured logging with sensitive data scrubbing
- Swagger UI: Interactive API documentation