A desktop calendar application with Go backend and Qt C++ frontend. The system provides functionality for event management, notifications, chats, and file handling.
- API Server (Go) - main REST API server
- Notifier (Go) - notification service
- PostgreSQL - primary data storage
- MongoDB - storage for chats and messages
- MinIO - object storage for files and attachments
- RabbitMQ - message broker for asynchronous tasks
- Qt C++ - desktop client application
POST /users/login- user authenticationPOST /users/register- user registrationPOST /users/{uid}/update- update user dataPOST /users/{uid}/changepass- change passwordGET /users/{uid}/profile- get user profile
POST /events/add- create eventGET /events/{uid}/month- get events by monthGET /events/{uid}/week- get events by weekGET /events/{uid}/day- get events by dayDELETE /events/{uid}/delete- delete eventPOST /events/update- update eventPOST /events/{eventID}/{uid}- change participant statusGET /events/{eventID}/parts- get event participantsGET /events/{uid}- get all user eventsPOST /events/{eventID}/notify- configure notificationsGET /events/one/{eventID}- get specific event
POST /chats/{eventID}- send messageGET /chats/{eventID}- get chat messages
POST /attachs/{eventID}- upload fileGET /attachs/{eventID}- get attachments
- PostgreSQL:14.8
- MongoDB:6.0
- MinIO
- RabbitMQ:3.12
- API Server
- Notifier Service
- Event management (create, edit, delete)
- Calendar views (day/week/month)
- Event participants system
- Per-event chat functionality
- File upload and storage
- Notification system
- Authentication and profile management