How arsbelkin/remindersapi works
RemindersAPI is a reminder-management service with user authentication, shared categories and reminders, notification scheduling, and administrative reporting. The main flow is an HTTP client calling API controllers, which delegate to application services and repositories backed by the database. Two workers handle notification scheduling and delivery through Redis and email integrations. The README provides no capability detail; the tree and sampled files support the feature branches shown. Several service, repository, and worker implementations were not sampled, so their internal calls are not expanded.
Main entry points: Repositories Repository Implementations · Worker.cs Notification Sender · AuthService.cs Authentication · RedisNotificationClient.cs Redis Queue Client
Components 23
HTTP API
- API Runtime
src/Reminders/Reminders.API/Program.cs - Authentication API
src/Reminders/Reminders.API/Controllers/AuthController.cs - Categories API
src/Reminders/Reminders.API/Controllers/CategoriesController.cs - Reminders API
src/Reminders/Reminders.API/Controllers/RemindersController.cs - Notifications API
src/Reminders/Reminders.API/Controllers/NotificationsController.cs - Admin API
src/Reminders/Reminders.API/Controllers/AdminController.cs - Error Mapping
src/Reminders/Reminders.API/Extensions/GlobalExceptionHandler.cs
Application Services
- Authentication
src/Reminders/Reminders.Application/Services/AuthService.cs - Category Management
src/Reminders/Reminders.Application/Services/CategoryService.cs - Reminder Management
src/Reminders/Reminders.Application/Services/ReminderService.cs - Notification Management
src/Reminders/Reminders.Application/Services/NotificationService.cs - Administration
src/Reminders/Reminders.Application/Services/AdminService.cs - Password Hashing
src/Reminders/Reminders.Application/Common/BCryptHasherService.cs
Persistence
- Repository Implementations
src/Reminders/Reminders.Infrastructure/Repositories - EF Data Context
src/Reminders/Reminders.Infrastructure/Contexts/RemindersContext.cs - Relational Database
Notification Delivery
- Notification Scanner
src/Reminders/Reminders.DbScannerWorker/Worker.cs - Notification Sender
src/Reminders/Reminders.NotificationSenderWorker/Worker.cs - Redis Queue Client
src/Reminders/Reminders.Infrastructure/Messaging/RedisNotificationClient.cs - Email Sender
src/Reminders/Reminders.Infrastructure/Messaging/EmailSender.cs
Other components
- API Client
- Redis
- Email Provider
Connections 21
- API Client → API Runtime: sends requests
- Authentication API → Authentication: delegates auth
src/Reminders/Reminders.Application/Services/AuthService.cs - Categories API → Category Management: delegates categories
src/Reminders/Reminders.API/Controllers/CategoriesController.cs - Reminders API → Reminder Management: delegates reminders
src/Reminders/Reminders.API/Controllers/RemindersController.cs - Notifications API → Notification Management: delegates notifications
src/Reminders/Reminders.API/Controllers/NotificationsController.cs - Admin API → Administration: delegates admin
- Authentication → Repository Implementations: uses user repository
src/Reminders/Reminders.Application/Services/AuthService.cs - Authentication → Password Hashing: hashes credentials
src/Reminders/Reminders.Application/Services/AuthService.cs - Category Management → Repository Implementations: uses repositories
- Reminder Management → Repository Implementations: uses repositories
- Notification Management → Repository Implementations: uses repositories
- Administration → Repository Implementations: uses repositories
- Repository Implementations → EF Data Context: queries and saves
src/Reminders/Reminders.Infrastructure/Repositories/ReminderRepository.cs - EF Data Context → Relational Database: maps entities
- Notification Scanner → Repository Implementations: reads notifications
src/Reminders/Reminders.DbScannerWorker/Worker.cs - Notification Scanner → Redis Queue Client: queues messages
src/Reminders/Reminders.DbScannerWorker/Worker.cs - Notification Sender → Redis Queue Client: receives messages
src/Reminders/Reminders.NotificationSenderWorker/Worker.cs - Notification Sender → Repository Implementations: checks notifications
src/Reminders/Reminders.NotificationSenderWorker/Worker.cs - Notification Sender → Email Sender: sends email
src/Reminders/Reminders.NotificationSenderWorker/Worker.cs - Redis Queue Client → Redis: uses queue
- Email Sender → Email Provider: delivers email