This product replaces Modeus+LMS calendar & Netology calendar, for better experience and more features. YetAnotherCalendar provides a unified interface to manage all your educational events and deadlines in one place.

- No Data Storage: We don't store passwords, emails, or personal credentials
- Privacy-by-Design: No telemetry, tracking, or analytics - we respect your data
- Error Monitoring: Rollbar integration with sensitive data scrubbing for production reliability
- Rate Limiting: Built-in protection against login attacks with configurable limits
- π Modeus Integration: UTMN university schedule with JWT token support and donor account system
- π LMS Integration: Moodle-based learning management system with course modules and deadlines
- π Netology Integration: Professional education platform with webinars and homework tracking
- π Unified API: Single endpoint combining all platforms for seamless experience
- π± Mobile-First Design: BETA mobile interface with responsive calendar views
- ποΈ Advanced Date Picker: Custom week picker with Russian localization
- π Event Details: Rich event modals with source attribution and action buttons
- β‘ Real-time Updates: Cache refresh system with visual indicators
- π¨ Material Design: Clean, modern interface with intuitive navigation
- π ICS Export: Standard calendar format compatible with Google Calendar, Outlook, Apple Calendar
- π MTS Links: Custom webinar link management system for quick access
- β° Timezone Support: Automatic timezone detection and conversion (Moscow, UTC, local)
- πΎ Smart Caching: Redis-powered caching with 14-day event retention
- π§ͺ Comprehensive Testing: pytest with fixtures for all major components
- π Type Safety: Full mypy typing coverage for better code reliability
- π Code Quality: Ruff linting with strict formatting standards
- π³ Container Ready: Docker Compose setup for easy deployment
- β‘ High Performance: Async FastAPI backend with Redis caching layer
- π Tutor Authentication: JWT-based secure access for instructors
- π« Rate Limiting: Protection against brute force attacks on all login endpoints
- πͺ Session Management: Secure cookie handling with proper expiration
- π Token Management: Automatic token refresh and validation
- π FastAPI: Modern async Python web framework with automatic API documentation
- π Pydantic: Data validation and settings management with type hints
- ποΈ Redis: High-performance caching and session storage
- π HTTPX: Async HTTP client for external API integrations
- π§ Loguru: Advanced logging with structured output and Rollbar integration
- βοΈ React: Component-based UI library with hooks and modern patterns
- π¨ SCSS: Advanced CSS preprocessing for maintainable styles
- π Flatpickr: Customizable date picker with internationalization
- π React Toastify: User-friendly notification system
- π± Responsive Design: Mobile-first approach with adaptive layouts
- π³ Docker: Containerized deployment with multi-stage builds
- π Docker Compose: Development and production orchestration
- β‘ Uvicorn: ASGI server with auto-reload and performance optimization
- π NGINX: Reverse proxy and static file serving (production)
-
βοΈ Backend docs
-
π Frontend docs
- Docker and Docker Compose
- Git
-
Clone the repository:
git clone https://github.com/depocoder/YetAnotherCalendar.git cd YetAnotherCalendar
-
Create
.env
files from templates:cp backend/.env.dist backend/.env cp frontend/.env.dist frontend/.env
-
Configure your environment variables in the
.env
files -
Run the application:
docker compose up --build
docker compose -f docker-compose.prod.yaml up -d
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.