This project was created by Sebastian Beimers, Elias Hawa, Zara Ali and Victor Li for Carleton University's COMP 3004 Winter 2023 course, taught by Vojislav Radonjic.
Click here to view our project demo video.
For more information on the team members' contributions, please refer to the pull requests.
- Worked on initial system architecture design
- Created log class and related logic
- implemented restore feature
- added UI for battery
- created plot points for high coherence simulations
- created coherence data for all 3 simulations
- added battery ticking, battery recharging, and related logic
- Worked on initial system architecture design
- Created plot points for medium and low coherence simulations
- Implemented indicator functionality, including coherence and challenge level logic
- Implemented functionality for device to update every 5 seconds (update functions in MainWindow, Device, and Recording)
- Implemented plot points, coherence, and achievement scores calculation in Recording class
- Implemented functionality for UI to update based on coherence, length of session, achievement score, and plot points during a session
- Implemented functionality for when the skin sensor is interrupted during an active session
- Created all sequence diagrams
- Worked on UI design and implementation including handling of device state and button handlers
- Worked on initial system architecture design
- Implemented functionality for device to update every 5 seconds (update functions in MainWindow, Device, and Recording)
- Worked on log history and deletion functionality
- Worked on application to skin functionality
- Worked on initial system architecture design
- Implemented power button functionality, including power button logic and power button UI
- Implemented battery logic and battery UI functionality
- created all use cases and the use case diagrams
- created uml diagrams for the system architecture and the class diagram
- created the traceability matrix
- created the README file
To get a local copy of this project up and running, please follow the steps below.
- Download the course VM (COMP3004-F21.ova) using this link here. Should the download not start as expected, please connect to the Carleton Remote Access VPN and try again.
- Setup a virtualization environment on your computer that allows you to run Virtual Machines. Click here for a Virtual Machine Step-by-Step Guide. More information can be found on the SCS Virtual Machines page.
- Clone the repository by running this command in the course VM terminal:
git clone git@github.com:sbeimers/3004-project.git
- Start the COMP3004-F21 VM and enter the username "student" and the password "student".
- Click on "Apps" at the bottom left corner, and then "Qt Creator (Community)".
- Once Qt Creator is opened, click on File > Open File or Project... > heartwave > heartwave.pro > Open (bottom right of that window).
- Once the project is opened, click on the green right arrow button at the bottom left corner to run the project simulator.
Congratulations! You are now running our project on your VM!
The project is organized as follows:
3004-project
├── README.md
├── Documentation
│ ├── Heartwave_Design_Patterns.pdf
│ ├── Heartwave_UML.pdf
│ ├── Heartwave_Use_Cases.pdf
│ ├── Heartwave_Traceability_Matrix.pdf
│ ├── Sequence Diagrams
│ │ ├── battery_low_diagram.pdf
│ │ ├── battery_settings_diagram.pdf
│ │ ├── interruption_of_signaldiagram.pdf
│ │ ├── normal_operation_session_diagram.pdf
│ │ ├── view_session_logs_diagram.pdf
├── heartwave
│ ├── heartwave.pro
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ ├── mainwindow.ui
│ ├── const.h
│ ├── device.cpp
│ ├── device.h
│ ├── devicestate.h
│ ├── log.cpp
│ ├── log.h
│ ├── qcustomplot.cpp
│ ├── qcustomplot.h
│ ├── recording.cpp
│ ├── recording.h