/FRACAS_Team1

FRACAS for UWA Motorsport

Primary LanguageJavaScriptMIT LicenseMIT

FRACAS Team 1

Repository Structure

  • Deployment/: project's deployment guide and template files related to deployment.
  • Documents/: project-related documents.
  • Planning/: CITS5206 unit-related documents and meeting minutes.
  • Resources/: documents provided by the clients.
  • backend/: project's Django backend. Descriptions of subdirectories and files can be found inside the directory's README.md.
  • fracas-ui/: project's React frontend. Descriptions of subdirectories and files can be found inside the directory's README.md.

Introduction

About

As part of the Master's in Information Technology Capstone unit (CITS5206), we are working with the University of Western Australia Motorsport club (UWAM) to develop a Failure, Reporting, Analysis and Corrective Action System (FRACAS).

The FRACAS for UWA Motorsport shall serve primarily as a means of recording and transferring knowledge of failures and what corrective actions were taken in response. Due to a lack of a comparable system, UWAM is seeking to eliminate the inefficiencies they are experiencing while transferring experience and technical knowledge to new members. This is exacerbated by the fact that UWAM is a student-led club, with members graduating and leaving the club every year.

The FRACAS will be developed using the Agile methodology, with the project being broken down into 3 sprints. The first sprint will focus on developing a mock up of the FRACAS Minimum Viable Product and refining specifications in regards to client's intentions. The second sprint entails creating a working prototype of the MVP. Lastly, the third sprint focuses on adding additional features and testing the system.

The FRACAS will be implemented using the Django web framework, with the system being hosted on the AWS cloud platform. The system will be developed using the Python programming language, with the front-end being developed using HTML, CSS and JavaScript. Data will be stored in a PostgreSQL database. The application will be available to users via a web browser on a desktop computer or mobile device.

Project Background

The University of Western Australia Motorsport club (UWAM) is a student-led club that competes annually in the FSAE-Australasia student design competition. This competition involves designing, building and racing a formula-style racecar. UWAM is inefficient at transferring experience and technical knowledge from competent members such as current Team Leads to new members.

This project aims to build and test a Failure, Reporting, Analysis and Corrective Action System (FRACAS) for UWAM.

This system will serve as an element of a greater knowledge management and transfer system, allowing current and future members to see records of past failures and how they were dealt with. Our intention is that this knowledge capture system can improve UWAM's scheduling, budgeting, management, vehicle testing, and the focus of future design efforts.

A requirements documents has already been developed as part of a BPhil 2nd year project. The clients are Erwin Bauernschmitt from UWAM and Prof Melinda Hodkiewicz (a maintenance and reliability engineer). A copy of the requirements document is available here.


Clients

Professor Melinda Hodkiewicz, Erwin Bauernschmitt and the UWAM.

Team Members

CITS5206 Group 10: James Braunagel, Wenbo Gao, Stanley Ser, Sachin Thekkooden, and Yanchen Zhao.


Key Features

Normal users in the FRACAS system can:

  • A user can create a new account
  • A user can create a new failure report
  • A user can view a list of all failure reports
  • A user can search for a failure report
  • A user can view a failure report
  • A user can edit failure reports which have the user in the editors list and/or created by the user

A team lead can do everything a user can do and:

  • A team lead can assign users to a team
  • A team lead can change the resolve and validation statuses of records

Admin features: An admin can do everything a team lead can do and:

  • An admin can log into the admin site of the FRACAS system
  • An admin can modify reocrds, users, teams, cars, teams, subsystems in the admin site
  • An admin can approve a user to activate the user's account

Demonstration deployment

Please contact developers for credentials.

User Manual

User registration, activation, and permission change

Normal user registration

  • Click the "Sign up" button in the navigation bar to the top right of the website.
  • Fill in the user details, then click "Register".
  • Click the link received in the user registration email inbox to verify the new account.
  • Contact an admin user to activate the newly verified account from the admin site.

A normal user can only use the site after the account is both email-verified and activated by the admin.

Admin user addition

  • Log into admin site using an admin account.
  • Click the "Add" button next to the Users row.
  • Fill in user detaills, then click "save".

Admin user permission change

User properties in the Admin site:

  • Email Verified: registration email is verified, cannot log in unless also approved.
  • Approved: approved by an admin user, cannot log in unless also email verified.
  • Team Lead: has permission to modify record resolve and validation statuses.
  • Admin: has permission to log in the admin site.

Change permission:

  • Log into admin site using an admin account.
  • Click the "Users" hyperlink, then select a user to modify.
  • Additionally, tick multiple checkboxes to select multiple users, then expand the Action dropdown menu to selct an action to be applied on the selected users. Click Go to confirm.

Please note: the actions "Approve/Disapprove" change the "Approved" attribute and essentially activate/deactivate the account.

User dashboard

3 buttons are provided, which are "Submit Report", "Search Reports", and "Log out".

  • Submit Report: create a new report to submit.
  • Search Report: search for an existing report using keyword and/or filters.
  • Log out: log out.

In the top-right navigation bar, the user is provided with a few buttons as well. The buttons will trigger the corresponding functionalities.

Submit Report

  • The report creation page provides some fields to be filled. The submit button is located at the bottom of the page. A new report can be submitted after some key fields are filled.
  • Click on the triangle button below "Additional Data Folder" to fill some additional data. You can add other users as record editors if you have the editing permission.
  • Some fields will be automatically filled with proper values.

Search Report

  • Type keywords in the input box, then click "Search" to search.
  • Click Clear Search to return to the intial state.
  • Pagination buttons will be enabled when more than 20 results are returned in one search.

View and Edit Report

  • Search for report first.
  • Click on a record's title to view and edit the report.
  • If the user is not the creator or not one of the editors, then the user cannot edit the report.
  • If the user can edit but is not a staff, then the record statuses will not be changed.

Add comments

  • Search for report first.
  • Click on a record's title.
  • Scroll to the bottome of the page, click "Add a Comment" to add a comment.

Admin dashboard

In the top-right navigation bar, the admin user is provided with an additional "Admin" button, which navigates to the admin site. Log in with the user credentials.
The admin dashboard is essentially a panel provided by the Django backend server. An admin user can freely modify cars, comments, records, subsystems, teams, and users using the dashboard.

  • For a record, if the creator user has been deleted, the account's email will be preserved in a field "Record creator email" that is only visible in the admin panel. This is same for the record owner.
  • Team assignment is done by change the "Team" attribute of a user.
  • To find the users on the same team, toggle sorting of users using the Team column.