Skip to content

A modular university registration and grade management system ('Mini-Golestan') written in MATLAB. Demonstrates professional MATLAB practices using packages, classes, and file-based data persistence.

License

Notifications You must be signed in to change notification settings

msmrexe/matlab-university-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MATLAB University Portal (Mini-Golestan)

This project is a modular university registration system ("Mini-Golestan") written in MATLAB. It was developed for a university course on Mathematical Software and adheres to MATLAB development practices, including packages, classes, file-based data persistence, and vectorized operations.

The system supports three user roles:

  • Students: Can view their grades, see class statistics (min/max/avg), and check their GPA.
  • Teachers: Can view class rosters and enter/edit grades for their courses.
  • Employees: Can view and edit course information, such as credit hours.

Features

  • Persistent Data: All data (users, grades, courses) is stored in .mat files, so changes are saved between sessions.
  • Modular Package: All application logic is encapsulated in a +golestan MATLAB package, separating it from the main script.
  • Clean Data Structures: Uses MATLAB tables instead of raw matrices. This allows for readable, named-column access (e.g., students.MathDB) instead of "magic numbers" (students(:, 3)).
  • Separation of Concerns:
    • DataService.m handles all file loading/saving.
    • AuthService.m handles user login.
    • utils.m provides static helper functions (GPA, grade assessment).
    • StudentPortal.m, TeacherPortal.m, and EmployeePortal.m contain their own UI loops.
  • Efficient Code: Uses fast, vectorized table lookups instead of for-loop user searches.

Project Structure

matlab-university-portal/ 
├── .gitignore 
├── LICENSE 
├── README.md                      # This documentation 
├── initialize_data.m              # --- RUN THIS FIRST --- 
├── main.m                         # The main runnable script (CLI) 
└── +golestan/                     # The MATLAB package folder 
    ├── AuthService.m              # Static class for login 
    ├── DataService.m              # Class for loading/saving .mat files 
    ├── EmployeePortal.m           # Function for the employee UI 
    ├── StudentPortal.m            # Function for the student UI 
    ├── TeacherPortal.m            # Function for the teacher UI 
    └── utils.m                    # Static class for gpacalc, assess

How to Run

  1. Open MATLAB.
  2. Add to Path: Make sure the project's root folder is on the MATLAB path.
    >> addpath(genpath(pwd));
  3. Initialize the Database (Run Once): Run the initialization script from the MATLAB command window. This will create the data/ directory.
    >> initialize_data
    Initializing database in 'data/' directory...
    Database initialized successfully.
  4. Run the Main Program: Now you can run the main application.
    >> main
    Welcome to Mini Golestan!
    
    --- Main Menu ---
    Which type of user are you?
      e) Employee
      t) Teacher
      s) Student
      x) Exit Program
    Enter your choice:

Author

Feel free to connect or reach out if you have any questions!


License

This project is licensed under the MIT License. See the LICENSE file for full details.

About

A modular university registration and grade management system ('Mini-Golestan') written in MATLAB. Demonstrates professional MATLAB practices using packages, classes, and file-based data persistence.

Topics

Resources

License

Stars

Watchers

Forks

Languages