Recruiting

Is CMPT 415 for you?

CMPT 415 with me (Dr. Brian) is a great choice if:

  • You want to develop professional quality tools which help people.
  • You have a commitment to high quality code and delivering great features for the real-world users.
  • You have solid technical, group-work, and communication skills.
  • You are self-motivated.
  • You strive to do well in all your courses.

You may be better off doing a different course if:

  • You feel hesitant about quickly learning new frameworks or languages (though the first 3-weeks of the course is all about learning brand new things).
  • You expect not to be able to commit to working 10h a week on the course.
  • You want a research focused experience (in which case, doing a CMPT 415/416 with a different supervisor on research based project may be better).

There are no strict course prerequisites for the course. Generally, students should have a strong GPA or upper-division GPA in Computing Science courses (3.0 or higher). Plus, students should be experienced with CMPT courses (completed 3 or more CMPT 3rd / 4th year technical courses), or have strong industry experience. CMPT 415 and CMPT 416 are identical courses, allowing a student to do two special projects throughout their studies.

The selection process is competitive. Preference is often given to students who have more experience or specific skills. For experience I often look for students who have: completed numerous upper division CMPT courses (especially CMPT 373, CMPT 473, and CMPT 362 when applicable), successful co-op terms, industry experience, or other high-quality coding experiences. Useful skills are listed for each project such as React, Django, TypeScript, or Android. In all cases, a strong GPA or CMPT related GPA speaks well of a student.

Course Structure

The team and I will find a time which works for everyone to meet (online via Discord; 100% remote, reasonable time in the Vancouver time-zone). Students are expected to do significant development work each week by consistently pushing the project ahead while maintaining the highest quality code. Marks are largely based on code/team contributions, but also on a couple written reports. All contributions must abide by the project's existing licenses (such as GPL), which means that by contributing code students agree to have their work used in accordance with the license.

Applying for Summer 2024

Thank you for your interest in the course! However, all team positions for Summer 2024 have been filled. For future semesters I will email all CS undergrad students with information on how to apply for the project.

Project: iCradle

Looking for 6 students for Summer 2024

This system may be used to support health care delivery for pregnant women in the Bidi Bidi refugee settlement in Uganda, and for medical patient referrals in Sierra Leone. Our Android app will be used by workers in the field to monitor the health of community members and refer them to health centres when necessary. In the health centres, our web app will be used by health care workers to access patient records, record treatments, and recommend follow-ups with discharged patients. The system is developed in partnership with doctors at Kings College London.

The system has a back-end (Python/Flask), a web front-end (React, Typescript), and two Android Apps (Kotlin). You will work closely with the customer (doctor in London, and health care team in Sierra Leone) to design, implement and test new features and correct defects. We hope the system will be put into active use and have a direct health benefit on many people. Students are supported in doing top quality work! The system was originally created by team Neptune in CMPT 373, Fall 2019.

Code is publicly mirrored to GitHub.com (CRADLE platform, CRADLE mobile app, and SMS relay app); though all our development will be on SFU's internal GitHub Enterprise server.

iCradle development needs

  • Allow mobile app to save submitted forms for sync to server at a later time.
  • Design and implement support for customized workflows which would support medical staff to follow a well defined process, or provide automated assistance at following a medical treatment decision tree.
  • Continue the development of sending requests over either HTTPS or SMS messages.
    • Mobile phone UI work to make it clear how the data is being sent, and display progress.
    • Mobile phone UI to clearly show meaningful and actionable error messages to user.
    • SMS relay (an Android app) work to better manage the state of communication with server and mobile devices.
    • Verify end-to-end encryption of data.
  • Continue improving the WebApp's UI for creating/editing dynamic form templates (like surveys).
  • Testing the system (automated and manual) to ensure fit for purpose. Specifically to test new features and recent work which decoupled a patient referral from a patient reading.
  • Standardize how the application handles patient drug histories.

iCradle Necessary Skills

  • Keen interest in working at a professional level to develop a program to help people
  • 3-4 students needed very strong Android experience (co-op experience with Android or CMPT 362)
  • 2-3 students needed for back-end Python work / front-end React work
  • One of these students will be the product owner who will work closely with Dr. Brian and the end customer to discover the customer's needs and help design the product. Likely using some Figma (no experience required) to design UIs.
  • Useful experience (no particular order): Kotlin, Python, Flask, REST API, TypeScript, React, Docker, CI/CD

iCradle Screenshot



Project: Hope Health Action - Haiti Hospital

Looking for 3-4 students for Summer 2024

This system supports collecting monthly reports from hospital staff at a hospital in Haiti. The customer, Hope Health Action non-profit runs the hospital and needs better data to inform their decisions. Each department must file a report detailing statistics for the month which is needed by both HHA and the Haitian government. Additional features include collecting case studies for use in outreach programs to donors and tracking equipment repair requests.

The system has a back-end and a web front-end created using the MERN stack (React, Redux, Express, Mongoose, Passport) written in TypeScript. You will work closely with the customer (with Hope Health Action) to design, implement and test new features and correct defects. Students are supported in doing top quality work! The system was originally created by team Haumea in CMPT 373, Fall 2021.

Code is publicly mirrored to GitHub (though all our development will be on SFU's internal GitHub Enterprise server).

Haiti Hospital development needs

  • Evaluate and improve the UI design of the webapp.
  • Polish features to make them intuitive to use and robust.
  • Track which departments have completed their forms and give them "points" for departments to compete to finish their work.
  • Visualization of data: see trends such as "Jan-Mar show # people in ICU per month"
  • Revise interface for Biomed tickets for tracking defective equipment.
  • One student needed to take on role of the product owner who will work closely with the customer.
  • Expand logging to include all necessary data to identify security breaches and track down errors.
  • Expand testing to improve unit test coverage and add end-to-end testing to the pipeline.
  • Cleaning up TODO comments in the code.

Haiti Hospital Necessary Skills

  • Likely some experience with TypeScript or JavaScript required.
  • Other tools that may be useful, but can be learned during the semester, include React, Express, Mongoose, REST API, and back-end server implementations.

Haiti Screenshot



Previous Projects

  • Community Based Rehabilitation patient tracking system created for Hope Health Action for use in the Bidi Bidi refugee settlement in Uganda. Entered active use Fall 2022; upgraded Summer 2023.
  • A team ladder and match sign-up web system developed in CMPT 373 for the Vancouver Racquets Club
  • GLIMPS GitLab/GitHub analysis system to support marking iteration based projects.
  • Baytree Centre (London) requested a custom system be developed to manage mentoring sessions.
    • Project is pretty much complete! Baytree Screenshot
    • Code available on GitHub
    • Status (as of Spring 2023): Customer decided they did not have the on-staff experience to run the system and is holding off putting it into active use.
  • System to monitor a rain-water capture setup for use in a remote setting, in partnership with Simbi Foundation
  • Software and electronics for the Embedded Cosplay Team's Halo suit

Recruiting