CST2335 Final GroupProject W25 Updated
CST2335 Final GroupProject W25 Updated
Purpose:
The Project is assigned to give you experience in:
Developing software in a group environment, including using GitHub to merge code into 1 project.
Dividing workload to meet deadlines.
Designing modular software that allows for that division of work.
Beginning Steps
One person should create a new project for the team and then upload it to GitHub using the menu option “VCS” -> “Import Into
Version Control” -> “Share project on GitHub”.
That group member must then invite the other group members to contribute. This is done by clicking on the “Settings” tab in
GitHub, then click “Collaborators” on the left side menu, and search the group member names to add them to the project. Other
team members should then clone that project to their computer and start making branches for their work. From AndroidStudio,
select “File” -> “New” -> “Project from version control” -> “Git” and then paste the git URL from the main GitHub repository
from the previous step. You will not be able to integrate your work if you do not start by first cloning the
project!
Then write your own code on your own branch and then merge that branch on GitHub (after each requirement is finished). Don’t
try to merge the code only on the last week.
Grading Guide
Each student is graded on his or her application separately. This counts for 85% of your project mark.
Week 13 All code is merged on your group’s GitHub repository You should only be doing merge fixes and fixing crashes the
final week.
Week 14 of the semester - Project demonstration during your scheduled lab demonstration found on the demonstration schedule.
You will show each of the 11 requirements from the list. Arrange a single submission of the group deliverable by one of the group
member’s computers on behalf of the entire group. You must be in the lab in person to answer questions about your work. Code
submitted on Brightspace will not be marked.
During the demo, each team member will need to explain their portion of the work
The demo must occur with the code from the main branch. Marks will be lost for failing to do this.
Each group will need to show evidence of Git commits, pushes and pull requests in GitHub that shows the contribution of each
team member
Your application should have a button for adding a new event. When the user presses this button, there is a page that lets the user
enter the event name, date, time, location, and description. You should check that all fields have a value before letting the user
submit the new event.
Once an event is added, it should appear in a list of events, as well as be inserted in a database. Selecting an event from the list
should show the event’s details in the same page as when creating the event. However, instead of a submit button, there should
now be an Update and Delete button. The update button just saves the event’s updated information and delete removes the event
from the list and database.
When a user adds a new event, the user should have a choice to copy the fields from the previous event or start with a blank page. You
should use EncryptedSharedPreferences to save the data from the previously created event in case they want to copy the information.
Your application should have a button for adding a new customer. When the user presses this button, there is a page that lets the
user enter the customer’s first and last name, address, and birthday. You should check that all fields have a value before letting the
user submit the new customer.
Once a customer is added, it should appear in a list of all customers, as well as be inserted in a database. Selecting a user from the
list should show that customer’s details in the same page as when creating the customer. However, instead of a submit button,
there should now be an Update and Delete button. The update button just saves the customer’s updated information and delete
removes the customer from the list and database.
When a user adds a new customer, the user should have a choice to copy the fields from the previous customer or start with a blank
page. You should use EncryptedSharedPreferences to save the data from the previously created customer in case they want to copy the
information.
Your application should have a button for adding a new expense record. When the user presses this button, there is a page that lets
the user enter the expense name, category, amount, date, and payment method. You should check that all fields have a value
before letting the user submit the new expense.
Once an expense is added, it should appear in a list of all expenses, as well as be inserted in a database. Selecting an expense
record from the list should show that expenses’ details in the same page as when creating the expense. However, instead of a
submit button, there should now be an Update and Delete button. The update button just saves the expense’s updated information
and delete removes the expense from the list and database.
When a user adds a new expense, the user should have a choice to copy the fields from the previous one or start with a blank page.
You should use EncryptedSharedPreferences to save the data from the previously created expense record in case they want to copy the
information.
Your application should have a button for adding a maintenance record. When the user presses this button, there is a page that lets
the user enter vehicle name, vehicle type, service type, service date, mileage, and cost. You should check that all fields have a
value before letting the user submit the maintenance record.
Once a maintenance record is added, it should appear in a list of all maintenance records kept by the car owner or fleet manager,
as well as be inserted in a database. Selecting a maintenance record from the list should show the maintenance details in the same
page as when creating the record. However, instead of a submit button, there should now be an Update and Delete button. The
update button just saves the record’s updated information and delete removes the record from the list and database.
When a user adds a new maintenance record, the user should have a choice to copy the fields from the previously created record or
start with a blank page. You should use EncryptedSharedPreferences to save the data from the previously created record in case they
want to copy the information.