reworded software purpose

This commit is contained in:
darkicewolf50 2025-02-17 21:06:59 -07:00
parent e5a863a367
commit 069794dc86

View File

@ -4,6 +4,16 @@ Authors and when it was updated
## How does Software Fit in?
### What is Software at Baja
Software aids the team not directly such as with deliverables for competitions (business presentation, components for the car, cad or other rule defined by SAE BAJA) but with applications, data collection or other operational needs or desires.
These are typically in the form of cost cutting and saving measures such as moving our recruitment processes to an almost free alternative or moving our website hosting a a cheaper alternative.
This does not mean that the Software team is limited to projects that only save the team in terms of cost it could also include having an onboard data collection system while driving or providing the tools to do virtual driving training or virtual steering tests.
The projects that are chosen to be worked on during the year are up to the lead and the current member roster skill level and makeup.
Software provides aims to provide an excellent place to learn concepts such as user interface and user experience (UI/UX), Testing methodologies, REST APIs, code reviews, code smells, designing an application and project/team management this is due to the unique way software is setup with a "graduated seniority system" as well as the obvious development. Leadership in software is a lot of teaching and learning how to run a team as well as many projects.
Software in Baja currently means the support team of the club through the development of software applications. This could be done by the use of our cloud to make running/operating the club cheaper, why pay for something when it can remade for free. Such projects include the BajaCloud which in itself contains the interview booking backend and the reimbursement backend. This does not mean the software can transform into a simulation, embedded programming team, data collection/transformation or cloud team. The options are up to what the lead decides/imagines best.
### The Future of Software
@ -36,7 +46,7 @@ This is directly taken from the 2018 Baja Charter and repeated again to highligh
It is important to note that UCalgary Baja does not exclusively recruit “car enthusiasts”. UCalgary Baja provides you with opportunities to realize your developmental aspirations.
```
I would look for anyone who is passoinate or wants to learn in their appilcation, this shows that they want to do software, you will be able to tell if it is a mech application, use your judgement to determine if you want the mech applicant
I would look for anyone who is passionate or wants to learn in their application, this shows that they want to do software, you will be able to tell if it is a mech application, use your judgement to determine if you want the mech applicant
## Coding Coduct
This section outlines how programming and coding in all languages should generally be followed:
@ -64,9 +74,8 @@ DO NOT USE THIS TO GET ALUMNI TO DO YOUR WORK
```
## How To's
A quick cheatsheet on how to use git can be found [here](SoftwareGit.md)
## How Tos
A quick cheat sheet on how to use git can be found [here](SoftwareGit.md)
Function Templates/Function Starters For commenting can be found [here](SoftwareFnStandards.md)
@ -75,8 +84,7 @@ Function Templates/Function Starters For commenting can be found [here](Software
###  Organization Structure
**Team Structure and Reporting Hierarchy**
This document outlines the reporting structure within the Software Subteam. Each role has specific responsibilities and reports to different levels of the team.
This document outlines the reporting structure within the Software Sub team. Each role has specific responsibilities and reports to different levels of the team.
### Captain of Baja
- Can overrule task approval
@ -88,14 +96,14 @@ This document outlines the reporting structure within the Software Subteam. Each
- **Min Requirements:** Not a Junior in the same year
- **Roles:** Mentor, code reviewer, task giver, project scheduler, designer, project/design approver, sysadmin of cloud/NAS
- **Language Access:** Python, HTML, CSS, JavaScript, YAML, JSON, XML, Lua, Rust, C, C++/Arduino, Java (please avoid), Golang, Terraform, Bash, Docker, Kubernetes, GitHub Actions
- **Summary:** They run the Software Subteam, have lots of projects complete, ensure that the cloud runs smoothly, enforce good coding practices, give out tasks/projects to senior members and approve.
- **Summary:** They run the Software Sub team, have lots of projects complete, ensure that the cloud runs smoothly, enforce good coding practices, give out tasks/projects to senior members and approve.
##### Future Software Lead
- **Reports to:** Software Lead
- **Min Requirements:** 2 years with the club
- **Roles:** Mentors, can be sysadmin of cloud/NAS, code reviewer, designer, task giver
- **Language Access:** Python, HTML, CSS, JavaScript, YAML, JSON, XML, Lua, Rust, C, C++/Arduino, Java (please avoid), Golang, Terraform, Bash, Docker, Kubernetes, GitHub Actions
- **Summary:** Experienced member, teaches others, enforces coding practices, and designs/feedback on projects, should run atleast one project with the support of the software lead, this is in order to get them comfortable with the role.
- **Summary:** Experienced member, teaches others, enforces coding practices, and designs/feedback on projects, should run at least one project with the support of the software lead, this is in order to get them comfortable with the role.
##### Senior Member
- **Reports to:** Software Lead and Future Software Lead
@ -119,19 +127,15 @@ This document outlines the reporting structure within the Software Subteam. Each
- **Summary:** They are new and here to learn, they can give limited amounts of feedback about designs (due to a lack of knowledge)
### Additional Context
This structure aims to provide a guide to members of software.
This does not mean that it is rigid it is a general guide to how the team members should operate and the level of expectations on them.
***Lanaguage Access***
***Language Access***
This does not mean that anyone on any level of the hierarchy is not able to code in those languages **Willingly** it is meant to be interpreted as a guard for those who are lower in the chain from going into more difficult languages such as C or rust where the understanding is not able to be taught by the university in their first or second years.
***Roles***
This gives the expectation of the person the newer one is to the club the less they are expected to know and do for the software subteam.
This gives the expectation of the person the newer one is to the club the less they are expected to know and do for the software sub team.
***Reports to***
@ -146,7 +150,7 @@ This is a technique in programming where a mentor and mentee are paired up the m
This is in hopes of giving the mentee exposure to the language and general programming concepts so that they may level up their skills.
### Roles and Expectations
based upon the 2018 Baja Charter, taylored to software
based upon the 2018 Baja Charter, tailored to software
#### All Members
- Your position on this team is a privilege, not a right.
@ -163,7 +167,7 @@ based upon the 2018 Baja Charter, taylored to software
#### Juniors
- Are expected to work and ask questions. Enthusiasm to learn and a positive attitude is a must!
#### Intermediates
- In addition to Junoir Member roles and expectations:
- In addition to Junior Member roles and expectations:
- Expected to carry out some of their own research and ask whatever questions they may have about their project. They may not necessarily know everything about the language/project but must make an effort to verse themselves as completely as they can.
- Can Volunteer to teach Juniors and other members new skills and assist in the transfer of knowledge.
- A Developmental level amount of time management to ensure adequate research and development of your design projects is a must.
@ -200,25 +204,25 @@ There are multiple phases throughout the year. As UCalgary Baja is a competition
Timelines in Software are flexible this is a guide to the year not a set in stone, some project scopes may take longer than others.
#### Summer - Testing **Software**
#### Summer - Testing - **Software**
The software could get involved in this time, this time should primarily be used for the setup/preparation for the new season, recruitment period, and any SSAF requests and allowing for the new lead to get situated and plan the projects for the year, this time also allows the old lead to mentor as well as they can the new lead.
This is a time where a break can be taken such as only meeting every second week.
#### Fall Semster 2025 Season Edit **Whole Team**
#### Fall Semester 2025 Season Edit - **Whole Team**
A number of deliverables get done
1. SSAF funding for the main manufacturing period (Winter Semster)
1. Recuitment
1. SSAF funding for the main manufacturing period (Winter Semester)
2. Recruitment
#### Fall Semester - Easier Projects **Software**
#### Fall Semester - Easier Projects - **Software**
This is the time when either your first or the easier projects happen, typically the projects involve higher-level languages like Python, JavaScript, HTML, CSS or high-level programming where the background level is low, it should be typically reserved for learning opportunities even if the club needs the tool.
This is a time for learning and enforcing good programming rules.
Recruitment also happens during this time which reduces the amount of time able to be spent on complex projects.
#### Winter Semester - Harder Projects **Software**
#### Winter Semester - Harder Projects - **Software**
The concepts learned from the fall semester are now built upon in more difficult tasks such as testing (boundary, inner whatever the lead decides is appropriate to accomplish)
This time can also be spent wrapping up easier projects, possibly continuing on with projects that were originally thought to be easy but instead turned out to be difficult
#### Late Winter to Early Spring **Software**
#### Late Winter to Early Spring - **Software**
No changes from the start of the Winter Semester
The addition of the Online Cost Report is the responsibility of the lead and senior members collaborating with electrical members.
Rules for software as of the 2025 season
@ -228,10 +232,10 @@ If any data collection system is on the car it must be included then a software
**We do not go to comp if no SSAF travel fund is completed**
#### Just Before Competition 2025 Season Edit **Whole Team**
A SSAF funding round happeens so that we get buy things for the Fall Semster manufacturing period
#### Just Before Competition 2025 Season Edit - **Whole Team**
A SSAF funding round happens so that we get buy things for the Fall Semester manufacturing period
#### Just Before Competition **Software**
#### Just Before Competition - **Software**
*Rewrite/Todo*
@ -248,7 +252,7 @@ The highest priority is to get the car out the door.
#### May to June - Competition
The moment weve all been waiting for! Competition is where all your blood, sweat, and tears invested in the vehicle pay off. It is the ultimate testament to what the vehicle was designed to do. The competition consists of static events (business and design presentations), dynamic events (acceleration, maneuverability, hill climb, suspension & traction, and rock crawl), and finally a 4-hour endurance race.
#### May to June - Competition **Software**
#### May to June - Competition - **Software**
We help where we can, that could be running the sim for the driver, fetching tools (hence why the previous phase), taking photos, helping businesses, helping where you can
@ -256,3 +260,21 @@ We help where we can, that could be running the sim for the driver, fetching too
Summer is the transition phase, and Fall is the start of a new season
Prepare for the next phase as well as you can
## Required Projects For Each Season
Software is a unique team, which means that the competition has no requirements but that doesn't mean we can't have self imposed ones
These are not requried to be finished, there is no penality to the competition
1. All projects should be maintained or updated, any project may be dropped by the lead if it deemed unnecessary or too expensive (time spent)
2. Website (this cannot be dropped), this includes the backend
- These three should be maintained once started for the first time
3. Modelling the last year's car into BEAMNG.drive (only one release per year, no need to update)
4. Modelling last year's track into BEAMNG.drive (only release one, no need to update unless we return to the same track)
5. Onboard data collection system (work with electrical and the rest of mech)
- These are fun training programs to improve members skills
6. Junior project `Docker` (anyone year can join) - Can run concurrently - One day
7. Intermediate project `Kubernetes Cluster & VPS` (limited to intermediate members) - Only 2 at a time - ran over a semester
8. Rust Learning Day (anyone can join and open to public for fundraising from the CURE program) - One day