How hussienahmed653/serveybasket works
Survey Basket is an ASP.NET Core API for managing surveys, identity, voting, and results. A typical workflow is to create and publish a poll, add questions and answers, accept votes, then query aggregated results. The graph also preserves registration and token flows, role-based access management, and the documented background-notification capability. Sampled services show EF Core persistence; question availability also uses HybridCache. Source excerpts and the index support the cited relationships; other documented capabilities are included without asserting unsampled wiring.
Main entry points: ServeyBasketDbContext.cs Application database · AuthServices.cs Authentication flows · RoleService.cs Role management · PollServices.cs Poll operations
Components 22
Survey and voting
- Poll endpoints
ServeyBasket.Api/Controllers/PollsController.cs - Poll operations
ServeyBasket.Api/Services/Polls/PollServices.cs - Question endpoints
ServeyBasket.Api/Controllers/QuestionsController.cs - Question operations
ServeyBasket.Api/Services/Questions/QuestionServices.cs - Voting endpoints
ServeyBasket.Api/Controllers/VotesController.cs - Vote operations
ServeyBasket.Api/Services/Votes/VoteServices.cs - Answer operations
ServeyBasket.Api/Services/Answers/AnswerServices.cs - Results endpoints
ServeyBasket.Api/Controllers/ResultsController.cs - Results aggregation
ServeyBasket.Api/Services/Results/ResultServices.cs
Identity and access
- Authentication endpoints
ServeyBasket.Api/Controllers/AuthController.cs - Authentication flows
ServeyBasket.Api/Services/Authentications/AuthServices.cs - JWT provider
ServeyBasket.Api/Authentication/JwtProvider.cs - Role endpoints
ServeyBasket.Api/Controllers/RolesController.cs - Role management
ServeyBasket.Api/Services/Roles/RoleService.cs - User endpoints
ServeyBasket.Api/Controllers/UsersController.cs - User management
ServeyBasket.Api/Services/Users/UserService.cs - Permission authorization
ServeyBasket.Api/Authentication/Filters/PermissionAuthorizationHandler.cs
Persistence and platform
- Application database
ServeyBasket.Api/Persistense/ServeyBasketDbContext.cs - Poll notifications
ServeyBasket.Api/Services/BackgroundJobNotification/NotificationService.cs
Other components
- API client
- Email sender
- Hybrid cache
Connections 29
- API client → Poll endpoints: requests polls
ServeyBasket.Api/Controllers/PollsController.cs - Poll endpoints → Poll operations: calls
ServeyBasket.Api/Controllers/PollsController.cs - Poll operations → Application database: reads and writes
ServeyBasket.Api/Services/Polls/PollServices.cs - API client → Question endpoints: requests questions
ServeyBasket.Api/Controllers/QuestionsController.cs - Question endpoints → Question operations: calls
ServeyBasket.Api/Controllers/QuestionsController.cs - Question operations → Application database: reads and writes
ServeyBasket.Api/Services/Questions/QuestionServices.cs - Question operations → Hybrid cache: gets and invalidates
ServeyBasket.Api/Services/Questions/QuestionServices.cs - API client → Voting endpoints: submits votes
- Voting endpoints → Vote operations: dispatches
- Vote operations → Application database: reads and writes
ServeyBasket.Api/Services/Votes/VoteServices.cs - API client → Results endpoints: requests results
- Results endpoints → Results aggregation: dispatches
- Results aggregation → Application database: reads votes
ServeyBasket.Api/Services/Results/ResultServices.cs - API client → Authentication endpoints: authenticates
ServeyBasket.Api/Controllers/AuthController.cs - Authentication endpoints → Authentication flows: calls
ServeyBasket.Api/Controllers/AuthController.cs - Authentication flows → Application database: uses context
ServeyBasket.Api/Services/Authentications/AuthServices.cs - Authentication flows → JWT provider: generates tokens
ServeyBasket.Api/Services/Authentications/AuthServices.cs - API client → Role endpoints: manages roles
- Role endpoints → Role management: dispatches
- Role management → Application database: reads and writes
ServeyBasket.Api/Services/Roles/RoleService.cs - API client → User endpoints: manages users
ServeyBasket.Api/Controllers/UsersController.cs - User endpoints → User management: calls
ServeyBasket.Api/Controllers/UsersController.cs - User management → Role management: checks allowed roles
ServeyBasket.Api/Services/Users/UserService.cs - User management → Application database: reads and writes
ServeyBasket.Api/Services/Users/UserService.cs - Permission authorization → Role management: enforces claims
- Poll operations → Poll notifications: queues notifications
ServeyBasket.Api/Services/Polls/PollServices.cs - Poll notifications → Application database: reads recipients
ServeyBasket.Api/Services/BackgroundJobNotification/NotificationService.cs - Poll notifications → Email sender: sends email
- Authentication flows → Email sender: queues account email
ServeyBasket.Api/Services/Authentications/AuthServices.cs