https://wits-infrastructure-management.web.app/
This repository contains the code for the Venue Management System website for the University of the Witwatersrand. The goal of this web application is to streamline the process of managing classroom and venue assignments, bookings, and maintenance, thereby enhancing the efficiency of space utilization on campus.
The system is designed to serve two distinct roles: Admins and Users (Lecturers and Students). Each role has its own dedicated flow to provide the appropriate tools and features for their needs.
Admins have full control over the venue management system and can perform the following actions:
-
Manage Venues:
- Add new venues to the system.
- Edit existing venue information.
- Remove venues when no longer required.
- Add academic schedules to venues, ensuring that venues are unavailable for booking during lectures.
-
Make Bookings:
- Book any type of venue (lecture halls, labs, study rooms, etc.) on behalf of other users.
- Prevent scheduling conflicts with academic schedules.
-
Manage Bookings:
- Edit or cancel existing bookings made by any user.
-
Manage Reports:
- Monitor and track the progress of reports submitted by users (regarding venue issues).
- Provide feedback and mark reports as resolved.
-
Manage Requests:
- View and handle requests submitted by users.
- Approve or deny requests, such as venue booking permission for restricted venues.
There are two types of users in the system: Students and Lecturers. While their flows are similar, they have different permissions regarding venue booking.
- Can only book Study Rooms and Tutorial Rooms.
- Users can:
- Search for available venues and make bookings.
- Edit or delete their own bookings.
- File reports about venue issues (e.g., broken equipment).
- Submit requests to admins if they need special permissions (e.g., access to restricted venues).
- View notifications regarding booking changes, request status, and report updates.
- Can book Study Rooms, Tutorial Rooms, Lecture Venues, Labs, and Test Venues.
- Same functionality as students with an extended venue booking range.
Both Students and Lecturers can receive notifications for:
- Status updates on reports and requests.
- Changes made by admins to their bookings.
- New bookings made by admins on their behalf.
-
Clone this repository:
git clone https://github.com/NotJordanZA/SDP-Project.git
-
Navigate into the project directory:
cd SDP-Project -
Navigate into the client directory:
cd client -
Install required dependencies:
npm install
-
Navigate into the server directory:
cd ../server -
Install required dependencies:
npm install
To run the system:
-
Navigate into the project directory:
cd SDP-Project -
Navigate into the server directory:
cd server -
Ensure that ALL lines containing the word
PORTare uncommented inindex.js. There are 4 occurences ofPORT, two in a single line at the top of theindex.jsfile, and two at the bottom of the file. -
Start the local backend:
npx nodemon index.js
-
Navigate into the client directory:
cd ../client -
Start the local frontend:
npm run start
-
Login:
- Use your wits account, or if you do not have acccess to a wits account, use one of the following:
Marker Admin - email: witsinfrastructure1@gmail.com - password: i@m@NAdm1n! Marker Lecturer - email: witsinfrastructure2@gmail.com - password: i@m@L3c7uR3r! Marker Student - email: witsinfrastructure3@gmail.com - password: i@m@5tuD3n7!
To deploy the system:
-
Ensure that ALL lines containing the word
PORTare commented out inindex.js. There are 4 occurences ofPORT, two in a single line at the top of theindex.jsfile, and two at the bottom of the file. -
Merge into the
developmentbranch:- Make sure that your feature branch is ready to be merged. Open a pull request and merge your branch into the
developmentbranch.
- Make sure that your feature branch is ready to be merged. Open a pull request and merge your branch into the
-
CircleCI Checks:
- After merging into the
developmentbranch, CircleCI will automatically run the necessary checks (tests, builds, etc.). Ensure all checks pass.
- After merging into the
-
Merge into the
mainbranch:- Once CircleCI confirms that the checks have passed on the
developmentbranch, open a pull request to merge into themainbranch.
- Once CircleCI confirms that the checks have passed on the
-
Automatic Deployment:
- Once the
mainbranch is updated, the application will be automatically deployed.
- Once the