Skip to content

This project is part of the Databases Course. The project is a PostGraduate system designed to keep track of all stuff related to the postgraduate system in university

Notifications You must be signed in to change notification settings

AhmedNasserG/postgraduate-database-system

Repository files navigation

Postgraduate Database System

Description

This project is part of the Databases Course. The project is a PostGraduate system designed to keep track of student's theses (Masters or PHD), progress reports, publications along with their respective defenses. Furthermore, examiners and supervisors can register also to the system where the supervisor supervises the student and his/her thesis and the examiner examines the defenses of certain theses. There is also admin access where he/she can see all content in the system and has also certain authorities and capabilities, such as issuing payments, installments, and update extensions of specific theses.

Tools and Technologies

This project was built using the following technologies:

  • Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.
  • Express.js is a web application framework for Node.js, which is a minimal and flexible Node.js web application framework designed for building web applications and APIs.
  • Ejs is a templating engine for Node.js.
  • MS SQL Server is a relational database management system (RDBMS) that is designed to provide a high-reliability, high-performance, and easy-to-use solution for the development of SQL-based applications.

Other tools:

  • Git is a version control system for tracking changes in source code during software development.
  • ffmpeg is a free and open source software library for realtime multimedia encoding and decoding.

Sample GIF

  1. Registering a new user

register

  1. Searching for a thesis

search

  1. Viewing and editing profile

profile

  1. Adding report

report

  1. Adding defense

defense

Website Preview

Watch the video on Youtube

Project Structure

Show Project Structure

.
├── bin
│   └── www
├── database  
│   ├── db-design                   <- data base design
│   │   ├── csv
│   │   │   ├── pg.csv            
│   │   │   └── pg.txt
│   │   ├── diagram                 <- EERD 
│   │   │   ├── final.drawio.pdf
│   │   │   └── final.drawio.xml
│   │   └── schema                  <- database relational schema
│   │       ├── schema.pdf
│   │       └── schema.tex
│   └── scripts                     <- data base implementation
│       ├── data-insertion.sql
│       ├── procedures.sql
│       ├── tables.sql
│       └── ... 
├── app.js                          <- launch server           
├── package.json
├── package-lock.json
├── README.md
├── procedures                      <- handle database procedures using js
│   ├── adminProcedures.js
│   ├── examinerProcedures.js
│   ├── supervisorProcedures.js
│   └── ... 
├── public                          <- static files
│   ├── images
│   │   └── guc_logo.png
│   ├── scripts
│   │   └── supervisorTheses.js
│   └── stylesheets                 <- css
│       ├── style.css
│       ├── dashboard.css
│       ├── errorStyle.css
│       └── ...
├── routes
│   ├── register.js
│   ├── login.js
│   ├── admin.js
│   └── ... 
├── utilities
│   ├── auth.js
│   └── toast.js
└── views
    ├── login.ejs
    ├── register.ejs
    ├── dashboardFooter.ejs
    ├── dashboardHeader.ejs
    ├── admin
    │   ├── adminDashboard.ejs
    │   ├── theses.ejs
    │   ├── supervisors.ejs
    │   └── ... 
    ├── student
    │   ├── studentDashboard.ejs
    │   ├── courses.ejs
    │   ├── profile.ejs
    │   └── ...
    └── ... 

Installation

  1. In order to run the project, you need to install the following: MSSQL Node.js

  2. Clone the project from github

> git clone https://github.com/AhmedNasserG/pg-database.git
  1. Run npm i command in the project folder

  2. Create .env file in root directory

> echo DB_USER_ADMIN="your_database_server_username" > .env
> echo DB_PASS_ADMIN="your_database_server_password" >> .env
> echo PORT="port_number" >> .env
  1. Execute tables.sql (to create tables in the database), stored-procedures (to create procedures in the database), and data-insertions (to insert data in the database) (NOTE: you should execute these files in order to create the database)

  2. Run node app.js (to launch the server)

Authentication

Login credentials for testing purposes:

Type email password
GUCian Student [email protected] student
Non-GUCian Student [email protected] student
Supervisor [email protected] supervisor
Admin [email protected] admin
Examiner [email protected] examiner

Design

Our Team

About

This project is part of the Databases Course. The project is a PostGraduate system designed to keep track of all stuff related to the postgraduate system in university

Topics

Resources

Stars

Watchers

Forks