Skip to content

FatimaAkbar66/StudentManagementSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 Student Management System (SMS)

C# .NET SQLite Docker

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.


🛠️ Tech Stack & Tools

  • 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.

📂 Project Architecture

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.

✨ Key Features

🔐 Secure Authentication

  • Role-based login for Admin and Student accounts.
  • Secret Signup Key protection for new Admin registrations.
  • Profile management and password update functionality.

🛡️ Admin Capabilities

  • 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.

🎓 Student Features

  • 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.

🚀 Getting Started

Prerequisites

  • .NET 10.0 SDK
  • Visual Studio Code with the C# Dev Kit extension.

Installation

  1. Open Terminal in the project root directory.
  2. Restore Packages:
    dotnet restore
  1. Run the Project:
    dotnet run
*The `sms.db` SQLite database will be automatically created on the first run.*

🐳 Docker

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.

Run with Docker

# Build the image
docker build -t sms-console .

# Run the container
docker run -it -v sms-data:/app/data sms-console

💡 C# Concepts Demonstrated

  • 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 using blocks.
  • 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.

About

A C# console application with SQLite database for managing students, courses, grades, attendance, fees, and timetables. Features separate admin and student interfaces with complete reporting capabilities.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors