Eric Hsieh, Andy Shen, Serdar Hasan
Jean
The project models an IT help desk at a university. It encapsulates students, staff, and faculty from a variety of departments. Each of these users must be part of a lab group in order to use the help desk. Any lab must have members associated with at least one department and therefore contribute to that department. Users can hold different positions in different labs (ie. primary investigator, consultant, research assistant). Any user can submit a ticket to the help desk to reserve an asset or request IT support. The help desk receives tickets and will reserve and lend any requested assets or support. Assets are defined as any of the following: software licenses, hardware, lab equipment, electronics, and tools. Assets available for use at any help desk were purchased by the department to which the help desk belongs. Departments have an annual budget that limits how much they can spend on purchasing assets. Labs have annual fundings, which is limited by their Department’s annual budget.
Departments and labs are located in buildings, and this information must be made available to the user. Labs are located in specific rooms, which are identifiable only by room number and building code. A help desk must also be located in only one room.
IT support teams are also available from help desks. These teams are responsible for the repairs and maintenance required on any department assets.
- Node.js
- bootstrap (npm install -save bootstrap)
- React Router (npm install react-router-dom)
If error occurs during server startup, run:
- set NODE_OPTIONS=--openssl-legacy-provider
Key: primary key, unique, not null
-
Help_Desk(hid, phone_number, room_number, building_code)
-
Faculty_Member(user_id, full_name, admin_access)
-
Department(dept_name, budget, dept_head, hid)
-
Lab(lab_name, phone_number, homepage_url, email)
-
Ticket(ticket_number, status, date_created, date_resolved, submitted_by)
-
Purchased_Asset(inv_number, cost, name, model, dept)
-
Software_License(inv_number, license_code)
-
Hardware(inv_number, type, specification)
-
Electronics(inv_number, wattage, serial_number)
-
IT_Support(team_number, phone_number)
-
Building(building_code, building_name, address)
-
Room(room_number, building_code, floor)
-
Reserves_Asset(ticket_number, inv_number)
-
Requests_IT_Support(ticket_number, team_number)
-
Dept_Located_In(dept_name, building)
-
Lab_Located_In(lab_name, room_number)
-
Participates_In(user_id, lab_name, position)
-
Contributes_To(lab_name, dept_name)
-
Repairs_And_Maintains(team_number, inv_number)
- Finalize sketched draft for website
- Set up Oracle database and simple PHP commands to interface
- Create empty SQL tables
- Create Login Page
- Create generalized web interface page templates
- Connect frontend and backend for simple commands
- New user
- new ticket
- Populate SQL tables with a few tuples for basic test queries
- Full implementation of all SQL relations in backend
- Basic HTML/CSS frontend implementation for following features:
- Adding a new user
- Adding a new department
- Adding new tickets
- Reserving assets
- Maintenance requests (directly through front desk or IT department)
- Frontend + backend interfaces connected
- Final debugging for interactions
- Adding nice to have features (visual asthetics)
- Suggestions and changes implemented to finalize bugs/bad design choices
- Front-end using Bootstrap and REACT.js
- Back-end using PHP and Oracle Database
- Add an asset purchase page (assets are classified by subclasses)
- Add a ticket submission page
- Add a get department information page
- Add a user login/access page
phone_number
attribute is limited to varchar(15) since international standard only supports up to 15 characters- not sure why there is no underline in markdown but some of the bolded fields are supposed to be underlines instead to indicate primary key