/registrar

Epicodus Week 11

Primary LanguageC#

University Registrar

By Kirsten Opstad, Brian Noh & Teddy Atkinson

A registrar application for a fictional university

Technologies Used

  • C#
  • .Net 6
  • ASP.Net Core 6 MVC
  • EF Core 6
  • SQL
  • MySQL
  • MySQL Workbench
  • LINQ

Description

Objectives (MVP)

An app for a University Registrar to keep track of students and courses.

User Stories

  • As a registrar, I want to enter a student, so I can keep track of all students enrolled at this University. I should be able to provide a name and date of enrollment.
  • As a registrar, I want to enter a course, so I can keep track of all of the courses the University offers. I should be able to provide a course name and a course number (ex. HIST100).
  • As a registrar, I want to be able to assign students to a course, so that teachers know which students are in their course. A course can have many students and a student can take many courses at the same time.

Further Exploration User Stories

  • As a registrar, I want to be able to create departments. A student can be assigned to a department when they declare their major and a course can be assigned to a department when it is created.
  • As a registrar, I want to be able to list out all of the courses or all of the students in a particular department, so that I can inform the counselors which departments need more students and which need more courses.
  • As a registrar, I want to change a student's file to show that they have completed a course, so that I can see if they need to take the course again.
  • As a registrar, I want to list out all of the courses a student has taken, so that I can see if they have met their degree requirements.
  • As a registrar, I want to see how many students have not completed courses in any particular departments, so that I can tell the administration which departments need help.

Goals

  1. Meet MVP
  2. Add Validation
  3. Further Exploration

Setup/Installation Requirements

Get copy of MySQL database

  1. Clone this repo to your workspace.
  2. Open MySQLWorkbench [Click here for instructions to download]
  3. Under Administration Tab, select Data Import/Restore
  • Select 'Import from Self Contained File'
  • Select ../registrar.sql from the root directory
  • Select "New..." and set new schema name to PROJECT-NAME
  • Select 'Start Import'
  1. You should now have a copy of the PROJECT-NAME database on your machine.

Open project

  1. Navigate to the Registrar directory.
  2. Create a file named appsettings.json with the following code. Be sure to update the Default Connection to your MySQL credentials.
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Port=3306;database=registrar;uid=[YOUR-USERNAME-HERE];pwd=[YOUR-PASSWORD-HERE];",
  }
}
  1. Install dependencies within the Registrar directory
$ dotnet restore
  1. To build & run program in development mode
$ dotnet run
  1. To build & run program in production mode
dotnet run --launch-profile "production"

Known Bugs

  • No known bugs. If you find one, please email me at kirsten.opstad@gmail.com with the subject [Repo Name] Bug and include:
    • BUG: A brief description of the bug
    • FIX: Suggestion for solution (if you have one!)
    • If you'd like to be credited, please also include your github user profile link

License

MIT License

Copyright © 2022 Kirsten Opstad

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.