Welcome! This repository contains two software tasks for the YURS rover team: a GUI (Frontend) task and a ROS 2 (Backend) task. Choose one task to complete before you begin. You can optionally complete both if you want to help with both the Frontend and Backend (Fullstack), but it's not required, and can also be done later down the road once you are accepted. See the task-selection guide to compare them.
If you have questions at any point, feel free to message the Software Lead or ask in the #prospect-general channel on the Discord server.
-
Decide which task you will complete.
-
Clone this repository to your local computer and enter its folder:
git clone https://github.com/YorkURobotics/YURS-Rover-Software-Onboarding.git cd YURS-Rover-Software-Onboarding -
Create a fresh Git repository for your own work. The cloned repository's folder will already contain
.git, so delete it from your local copy and initialise a new repository. On macOS, Linux, or Git Bash, run:rm -rf .git
On Windows PowerShell, run:
Remove-Item -Recurse -Force .git
Then, on any platform, run:
git init git add . git commit -m "Initial task setup"
-
Read the README for your selected task and begin implementing it:
-
Commit as you go. Do not put the entire implementation into one commit. It's good practice to break your changes down into smaller commits, since they are easier to review and act as "checkpoints" you can return to if something goes wrong.
Both tasks include a 15–20 minute interview to discuss your implementation. There will also be a pair-programming portion where you implement a small additional feature.
LLMs are permitted, but you will be tested on your own understanding of the work you submit during the interview.
When your task is complete, record a short video showing it working, zip your completed repository, and submit it through the submission form.
Your video must demonstrate the applicable completion criteria:
- Brightness control works.
- Zoom control works.
- Profiles can be selected.
- The latest values persist across browser sessions.
- Your node is running.
- The
position_checkerpackage is running. - The terminal for the position_checker displays the
Correctmessage.