I developed SurveyBasket, a full-featured backend system for managing surveys and online polls. The project was built to handle the complete survey lifecycle, including poll creation, question and answer management, user access control, voting workflows, and result analysis through a secure and scalable API architecture.
The system was built using ASP.NET Core Web API and .NET 9, with Entity Framework Core and SQL Server for data management. For authentication and authorization, I implemented ASP.NET Identity with JWT, allowing secure user registration, login, email confirmation, password reset, refresh token rotation, and token revocation.
The project includes several core modules:
Poll management with create, update, delete, publish, and active poll retrieval features.
Question management inside each poll, including answer options and enable/disable status control.
Voting workflows with duplicate-vote prevention and validation of submitted answers.
User management with account creation, update, status toggle, and unlock functionality.
Role and permission management with fine-grained access control.
Reporting and analytics endpoints for raw voting data, votes per day, and votes per question.
From a technical perspective, I focused on performance, maintainability, and reliability. The project includes:
Hangfire for background job scheduling and automated poll notification workflows.
MailKit for sending transactional emails such as account confirmation, password reset, and poll notifications.
Hybrid Cache to optimize retrieval of available voting questions.
FluentValidation for input validation and request integrity.
Serilog for structured logging and request monitoring.
Health Checks to monitor database and service availability.
Rate Limiting to protect sensitive endpoints such as authentication routes.
Mapster for efficient mapping between entities and API contracts.
I also structured the project into clear layers such as Controllers, Services, Entities, Contracts, and Persistence, with audit tracking for created and updated records. This makes the system suitable for organizations or platforms that need a professional survey and polling backend with secure access control and reporting capabilities.