A professional C# Console Application integrated with SQLite for persistent data storage. This project demonstrates a clean, modular architecture (Models-Services-UI) designed for scalability, security, and cross-platform deployment.
- Language: C# (.NET 10.0)
- Database: SQLite (using
Microsoft.Data.Sqlite) - Environment: Visual Studio 2026
- Containerization: Docker (Multi-stage builds)
- Data Handling: LINQ for advanced data querying and Parameterized SQL for security.
The project is organized into distinct layers to ensure a clean separation of concerns:
- Models: Core data structures (Student, Course, Admin, etc.).
- Data: Database connection helpers and initial schema seeding.
- Services: Repository layer handling all CRUD operations and SQL logic.
- UI: Organized menus and interactive screens for both Admin and Student roles.
- Helpers: Formatting tools for a polished Console UI experience.
- Role-based login for Admin and Student accounts.
- Secret Signup Key protection for new Admin registrations.
- Profile management and password update functionality.
- Record Management: Full CRUD operations for Students and Courses.
- Academic Control: Enroll students, assign grades, and manage course schedules.
- Attendance Tracking: Log daily attendance with automated "Shortage Reports" for students below 75%.
- Financial Management: Track fee payments, manage pending balances, and generate revenue summaries.
- Advanced Analytics: Generate reports for top performers, enrollment statistics, and departmental summaries.
- Academic Dashboard: View enrolled courses, personal grades, and calculated CGPA.
- Attendance Log: Transparent access to personal attendance history.
- Finance Tracking: View total tuition fees, paid history, and outstanding balance.
- Timetable: Access personalized weekly class schedules.
- .NET 10.0 SDK
- Visual Studio Code with the C# Dev Kit extension.
- Open Terminal in the project root directory.
- Restore Packages:
dotnet restore- Run the Project:
dotnet run*The `sms.db` SQLite database will be automatically created on the first run.*
The project is fully containerized using a multi-stage Dockerfile — Stage 1 compiles the C# project using the .NET SDK, Stage 2 runs it on a lightweight runtime image. The SQLite database is stored in a Docker volume so data persists between container restarts.
# Build the image
docker build -t sms-console .
# Run the container
docker run -it -v sms-data:/app/data sms-console- Object-Oriented Programming: Encapsulation through Namespaces and Classes.
- Data Security: Implementation of Parameterized Queries to prevent SQL Injection.
- Modern Syntax: Switch expressions, String interpolation, and Nullable types.
- Functional Programming: Use of
Action<T>delegates and LINQ. - Resource Management: Efficient database connection handling using
usingblocks. - Containerization: Multi-stage Dockerfile with Docker volume for persistent storage.
*git clone https://github.com/FatimaAkbar66/StudentManagementSystem.git Developed as part of the CS curriculum to master C# logic and Database Integration.