wimming Academy Management System - Web API
A professional ASP.NET Web API backend for managing a swimming academy with full database-first architecture. This system supports managing swimmers, schools, pre-teams, coaches, users, and detailed role-based actions. Built using stored procedures and SQL functions for maximum performance and integrity.
Table of Contents
Features
Architecture
Technologies
Database Schema
Stored Procedures
API Endpoints
Setup Instructions
Project Structure
Screenshots
License
Features
Secure role-based authorization: Admin, SuperAdmin, Swimmer, Parent, Coach.
Swimmer enrollment, level tracking, and attendance.
School and PreTeam session management.
Invoice generation and registration logic.
Full CRUD using stored procedures — no EF migrations.
Centralized logging of all actions.
? Action-based privileges via Users_Priv, AppCodes, and Actions.
Architecture
Architecture: Database-First
Business Logic: SQL Stored Procedures and Functions
No Services Layer: Direct Repository → Controller access
Data Access: ADO.NET with raw commands and data readers
Technologies Used
ASP.NET Core Web API (.NET 8)
Microsoft SQL Server
ADO.NET (no Entity Framework migrations)
Swagger / Swashbuckle
AutoMapper (optional)
Visual Studio 2022
Database Schema
Database: SwimminAcadmy
Key Tables:
Swimmers.Info
Swimmers.Parent, Swimmers.Technical, Swimmers.Log
Schools.Info, Schools.Details, Schools.Log
PreTeam.Info, PreTeam.Details, PreTeam.Log
AppCodes, Users, Users_Priv, Actions
InvTrans, Trans
Stored Procedures
Key Modules:
Swimmers:
Add_Swimmer
UpdateSwimmerLevel
SavePteam_Trans, SaveSchool_Trans
ViewPossible_Pteam, ViewPossible_School
PreTeam:
Create_PTeam, Updated, EndPreTeam
ShowPTeam, SearchActions, PTeamDetails_tab
Schools:
Create_School, Updated, EndSchool
ShowSchool, SchoolDetalis_Tab, SearchActions
All logic is encapsulated in stored procedures to maintain data integrity and traceability.
API Endpoints (Examples)
EndpointMethodDescription
/api/swimmers/addPOSTAdd a new swimmer
/api/swimmers/update-levelPUTUpdate swimmer level
/api/swimmers/{id}/technical-tabGETGet swimmer’s technical tab info
/api/schools/showPOSTShow school data (filter)
/api/preteam/searchPOSTSearch PreTeam info
For full list, open /swagger/index.html after running the project.