Five Dudes Capstone Project.
The rise of large language models like ChatGPT has had a massive impact on the integration of artificial intelligence into everyday life. Music forms an integral part of our lives and we do not always realize this. At Five Dudes, we are excited about the potential to merge artificial intelligence with a service used by billions around the world. Our goal is to harness the use of artificial intelligence to streamline the music listening experience for users everywhere. MoodMix allows us to do just that.
Gerrit Potgieter
Rhevan Kruger
Frontend, Integration Engineer I am a passionate student with a keen eye for detail and a great deal of interest in the world of Computer Science and Software Engineering. I take a great amount of satisfaction in the efficiency of a well-oiled development process and environment. I pride myself on being highly motivated and delivering quality work.I have prior experience in web development, volunteering at RURESA (Rural Rehab SA). Through this process I learned a lot about web-development and found myself thoroughly enjoying the work. I am also well versed in other languages and frameworks some of which will be listed below. Resume: https://drive.google.com/file/d/14WSFZ_3tMI77fgqfenRApsAfAlItNwFa/view?usp=drivesdk
|
Alex Pretorius
James Hardy
Ian van Wyk
Overview
Our Git organization and management strategy is designed to streamline development, ensure code quality, and facilitate smooth releases. This document outlines our branching strategy, the purpose of each branch type, and best practices for collaboration.
We follow the Gitflow branching model, which helps manage the project's development and release process effectively. The main branches in our repository are:
main
: Contains production-ready code. Always in a deployable state.dev
: Integrates all latest development changes. Used for feature integration and testing.feature/*
: Used for developing new features. Branched off fromdev
and merged back intodev
when complete.release/*
: Used for preparing a new release. Branched off fromdev
and merged into bothmain
anddev
.hotfix/*
: Used for critical bug fixes in the production version. Branched off frommain
and merged into bothmain
anddev
.
- Purpose: Contains the stable, production-ready code.
- Usage: Only release and hotfix branches are merged into
main
. - Best Practices: Ensure all changes are thoroughly tested and approved before merging into
main
.
- Purpose: Integrates all development work. Acts as the primary branch for ongoing development.
- Usage: All feature branches are merged into
dev
. Developers pull fromdev
to stay updated with the latest changes. - Best Practices: Regularly pull from
dev
to minimize merge conflicts and ensure feature branches are up-to-date.
- Purpose: Develop new features independently.
- Usage: Branch off from
dev
to start working on a new feature. Merge back intodev
upon feature completion. - Naming Convention: Use descriptive names, e.g.,
feature/new-login-page
. - Best Practices: Frequently pull from
dev
and resolve conflicts locally before merging back.
- Purpose: Prepare for a new production release.
- Usage: Branch off from
dev
when thedev
branch has enough completed features for a release. Merge into bothmain
anddev
after final testing and minor fixes. - Naming Convention: Use version numbers, e.g.,
release/v1.0
. - Best Practices: Ensure all release-critical issues are resolved before merging.
- Purpose: Address critical bugs in the production environment.
- Usage: Branch off from
main
to fix the bug. Merge the fix into bothmain
anddev
. - Naming Convention: Use descriptive names, e.g.,
hotfix/critical-bug
. - Best Practices: Prioritize resolving the issue quickly and ensure it is tested before merging.
- Creating a Feature Branch
git checkout dev git pull origin dev git checkout -b feature/new-feature