WeThinkCode Bootcamp Group Projects
WeThinkCode Bootcamp Group Projects
Table of Contents
Introduction 1
Bootcamp Helper 2
Features 3
Testing process 4
Introduction
Congratulations! WeThinkCode_ has selected you as one of its interns. Your first task is
to help WeThinkCode_ manage bootcamp administration by creating a WeThinkCode_
Bootcamp Helper.
The Bootcamp Helper is a programme with a number of features that assist WTC with
automating internal bootcamp processes and managing bootcamps. Each team
member will be responsible for building a feature.
You are allowed to build as many features as you are able to however you will need to
complete at least one feature per team member.
1. Username generator
2. Team Allocator
A feature that allocates users into different teams for the group project. Teams
are allocated based on their track (experienced or non experienced), campus
and bootcamp type (virtual or physical).
3. Registration station
Features
Each feature has a skeleton code and unit test. The skeleton code is the code
you will build from.
1. Your program should prompt a user to input Their First Name, Last Name,
Campus and the cohort year they are entering. - It is your choice how you will
expect this input, one by one or in a single string
2. Your program should validate user input in the following ways:
a. First name and last name name should not contain digits
b. Campus should be a valid campus
c. Cohort year should be a valid cohort year - a candidate can’t join a cohort
in the past
3. You will have a function that produces the username from the input provided.
4. The user will then be asked if the final username is correct. Let them know what
the format of the username is and if the final username is correct.
See below for an example of the final bootcamp username based on personal
information:
Final username:
elomkhDBN2022
ELO - Last 3 letters of first name (if their name is less than 3 letters you should add the
letter O at the end)
MKH - First 3 letters of their last name (if their name is less than 3 letters you should
add the letter O at the end)
DBN - Final Campus selection - Johannesburg is JHB, Cape Town is CPT, Durban is DBN,
Phokeng is PHO
Team Allocator
A program that allocates users into different teams for the group project. A list (student_list())
with dummy data has been provided to you.
1. Use the student_list() function to get a list students with the following structure:
elomkhDBN2022 - 4 April - Johannesburg Physical - seat 3
5. Write all the information into a text file name the file campus_teams.txt, and
virtual_teams.txt
NB: Use the dbn_teams_file(durban_physical_teams) function to write the Durban
teams into a file, cpt_teams_file(cpt_physical_teams) function to write the Cape Town
teams into a file, jhb_teams_file(jhb_physical_teams) function to write
theJohannesburg teams into a file, nw_teams_file(nw_physical_teams) function to
write the Phokeng teams into a file and the virtual_teams_file(virtual_teams) function
to write the Virtual teams into a file.
Registration Station
A program that displays the information of candidates who have registered to a bootcamp,
their booking information and gives them an opportunity to confirm or change their booking.
1. You should have a text file with dummy bootcamp registrations (bootcampers.txt).
The bootcamp information should be structured in the following way:
elomkhDBN2022 - username
2. Your program should request a username, and read the text file for a username that
matches one that has been input.
3. Your program should then print out the information contained after the username
(from the date), ask the user if it is correct and prompt them to confirm or deny.
4. If the user denies any information, you should prompt them to input the correct
information and change their details.
5. Once you have gone through all of the information and confirmed the correct
information you should print out the details.
correct_or_incorrect() - Prompt to ask if details are correct or not, must return “correct” or
“incorrect”.
correct_details() - Prompt to correct and write user details to text file, prompt field includes:
1. You should have a text file with a list of multiple choice questions and answers
structured in the following way:
a. 1. What are variables used for? A - Variables are used to store information
to be referenced and manipulated in a computer program and can change
throughout the life cycle of a program. B - Variables are used to store
information that will never change C - sdjhdsjhfdhjsdfdbfhsd.
2. How many leaves are in a tree? A - 23 B - 45 C - 78
2. Your program should administer a multiple choice exam out of 5. The first round will
print 5 random questions from the bank of questions, accept an answer (A, B or C)
and print out a final score at the end of the round.
3. The next round will consist of the questions that were answered incorrectly, once
that round is complete it will print out the answer and continue until all questions
have been answered correctly.
A program that determines if a candidate has passed or failed bootcamp based on their
results across different assessments.
1. A student’s results should be stored in text files that contain a list of usernames
and scores.
Example:
Formula:
Exam_results:
StudentA - 50
StudentB - 30 (30%) (18/60)
StudentC - 40
group_project:
StudentA - 8
StudentB - 10 (50%) (10/20)
StudentC - 12
Daily_exercises:
StudentA - 18
StudentB - 20 (66%) (13/20)
StudentC - 22
41/100
2. You should have 3 results. One for the exam (out of 100), one for the group
project (out of 20) and one for daily exercises (out of 30). The exam will weigh
60%, the group project 20% and the daily exercises 20%.
3. A user should be able to enter a username via the command line and your
program should fetch the user’s results from each file and calculate a final
average mark out of 100.
4. A candidate has passed if they have an overall average above 80%.
5. There are two different types of passes. A first class pass which is over 90%
average and a normal pass which is over 80%.
6. Your program should print out the final average score out of 100, whether they
passed or failed, whether they passed first class or second class, and the score
for each category.
Testing process
As part of your group project submissions, we want to introduce you to test driven
development, which is a programming practice where tests are written for your code
solutions and you are required to write code that passes those tests.
To run a unit tests to ensure that your code works as required, do the following:
Replace [feature name] with the name of the feature you’re working on to run the
correct unit tests. Also check the Bootcamp Helper Resources directory for a unit test that
corresponds with the feature you’re working on, i.e. for the team allocator feature the unit
test test_team_allocator.py is the unit test you should run. For this feature, in the terminal
you’d have Home/Desktop/Bootcamp Helper Resources/ python test_team_allocator.py
Use the test results and the comments in the skeleton code provided to you to guide you on
what is missing in your code.
Make sure that your code compiles before submitting. Your code has to compile before a
project mentor can mark it. Try to make sure that your project feature passes as many unit
tests as possible.
Your project mentor will use the number of unit tests passed to give feedback on your
performance.