vbukoev / CourseNet

CourseNet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview πŸ‘¨πŸ»β€πŸ’»

"CourseNet" is a web application with educational and demonstrative purposes. It mimics (in a much smaller scale) systems used for management of online courses and enrolling in them. You can enroll in to different courses, lectures, you can get a huge amount of materials, become students or even instructors of the courses.

Technologies used βš™οΈ

  • .NET Core 6.0
  • ASP.NET Core
  • Entity Framework Core
  • HTML, CSS, Bootstrap
  • MS SQL Server
  • NUnit
  • Moq
  • JS

Users πŸ§‘β€πŸ€β€πŸ§‘

There are 4 types of users with different access to the application's functionality:

  • Guest - logged off user. Guests can only view available courses.
  • Student - This is the user who can enroll the courses which were created by the instructor.
  • Instructor - This is the user who creates the courses and which courses can be enrolled by the students of the system
  • Administrator - The administrator can alter the global settings of the application and delete courses, lectures, materials, reviews.

Test credentials

You can test the application with pre-seeded data using the following credentials:

Student

Username: test@students.com
Password: 123456

Instructor

Username: futureInstructor@instructors.com
Password: 123456

Administrator

Username: admin@coursenet.bg
Password: 123456

Database diagram

database-diagram

Functionality

Table of contents

User registration

On the registration page, you can create a new user profile as a student. To become an instructor first you have to be registered as a student and after that in the application there is a button where you can become instructor. user-registration

Home page

On the home page, Guests can view the all of the available courses but they can not enroll into them or become instructors. To do this, they have to be registered users. home-page

Admin home page

This is the admin home page, where administators can see all of the content available in the application. They can test the application and see statistics for the app. There they can find all of the courses, they can add a course, they can see all of the courses which they have created. They can also see the enrolled courses and all of the users in the app. admin-home-page

All courses

Here you can see all of the available courses in the application. If you are an admin or the instructor, who created the course, you can either choose to see details of the course, edit it or to delete it. all-courses

Details section of the course

Here you can see the details of the course - description, price, category, difficulty and the end date of course. Also here is the option to see all the lectures and reviews of the course. Another useful information displayed here is the information about the creator(the instructor) of the course - his email and phone number. course-details

Edit section of the course

Here you can edit the course. You can change its description, price, category, difficulty and the end date of course and after all of the changes you can submit them to the application.
course-edit

Delete section of the course

Below you can see the delete page when you try to delete a course. To do it you have to have either administrator role in the application or you have to be the instructor who created the course. course-delete

My courses

The page where you can see the courses which you enrolled. courses-mine

Become instructor page

This page is the place where you can become an instructor. instructor-become

All categories

The page where all categories are shown. There are buttons for the details, delete button, edit button. all-categories

Create category page

You can create a category first if you have the permissions to do it. It can be done by only submitting the category name. create-category-page

Details of the category

The page where the name of the category is shown. details-of-the-category

Edit category page

This is the page where you can change the category name. edit-category-page

Delete category page

The page where you are questioned if you are sure you want to delete the category. If you delete the category, you are going to delete all of the courses which are from this category. delete-category-page

All lectures for course

This is the page where you can see all of the lectures which are related to the course you want to check. There are buttons for deleting the lecture if you have the permissions, adding materials to the lecture, or to see the current materials available. all-lectures-for-course

Create lectures

If the user wants to create lecture, first of all the user has to have the permissions. After that, he/she has to add the title of the lecture and its description. After all the last thing is to hit the submit button.
create-lectures

Delete lecture

The delete page of the lecture shows its name and questions its instructor(creator)/administrator if he/she is sure. delete-lecture

All materials for lecture

The page where all materials for the lectures are shown. all-materials-page

Edit the material

There is an option to change the name of the material and to change its description. edit-material

Delete material

The page where you are questioned if you are sure you want to delete the material. You can delete it if you have the needed permissions. delete-material

All reviews for the course

All reviews shown in this page. all-reviews-for-the-course

Create review for the course

The page where you can add review to the course by adding rating for the course(from 1 to 10) and comment to the review. create-review-for-the-course

Unit tests and code coverage

On the pictures below, it is shown the number of unit tests and the code coverage of unit tests of the services. unit-tests-passing

code-coverage-services

Error page

error-page-401

error-page-404

About

CourseNet

License:MIT License


Languages

Language:C# 83.5%Language:HTML 14.9%Language:CSS 1.2%Language:JavaScript 0.3%