Skip to content

Five Dudes MoodMix is an innovative mobile application that is being used to easily generate playlists based of user's emotion and speech. a User will simply scan their face and based off of the emotion a playlist will be generated accordingly. Listen to music easier, use MoodMix!

Notifications You must be signed in to change notification settings

COS301-SE-2024/MoodMix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

final one hopefully

codecov Lint Build GitHub last commit GitHub issues GitHub closed issues

Flutter Dart Java DeepLearning4j Machine Learning Spotify API Android Firebase NoSQL

Recipient of Software Engineering Excellence Award

General Overview

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.

Latest App release

Table of Contents

Team Members

Gerrit Potgieter

Gerrit Potgieter

Project Manager, Business Analyst
Hi! I’m a final year computer science student looking to further my studies in the field of cyber security! I love exploring the vast spaces in the world of IT and I like to tinker with API's to see what I can achieve with it. I'm most comfortable working middleware and communications within a system.

GitHub LinkedIn

Rhevan Kruger

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

GitHub LinkedIn

Alex Pretorius

Alex Pretorius

Backend , Middleware
As a final year Computer Science student who has had experience working in different industry environments. I have a keen interest in Cyber Security, Cloud Security and AI and a good background in different languages like Python, C++ and Java. Along with practical skills I pride myself in delivering a strong work ethic and quality work.

GitHub LinkedIn

James Hardy

James Hardy

Backend , Middleware
I am a dedicated third-year computer science student with a strong passion for backend development and working with databases. My academic journey has led me to explore a wide range of technical concepts, and I thrive in environments where I can dive deep into the logic and structure of systems. From managing data to implementing complex server-side functionalities, I enjoy the challenge of working on backend technologies and love solving problems that require innovative and efficient solutions.

GitHub LinkedIn

Ian van Wyk

Ian van Wyk

ML Engineer, Services Engineer
I am a final year Computer Science student with a deep interest in all things data science and AI. After watching Garry Kasparov vs Deep Blue for the first time, my fascination for computers and AI models started. I was determined to one day be able to implement my own AI models. This is ultimately what led to me studying Computer Science. I am goal-oriented and determined to finish what I start. I try to ensure that the things I do, I do to the best of my capabilities and to the highest of quality. My strong work ethic is complemented by robust problem solving skills that I try to apply to all aspects of my life. I am comfortable using Python, TensorFlow, Keras, R, Java and C++.

GitHub LinkedIn

Documentation

Project Boards

Demo Videos

Git Organization and Management

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.

Branching Strategy

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 from dev and merged back into dev when complete.
  • release/*: Used for preparing a new release. Branched off from dev and merged into both main and dev.
  • hotfix/*: Used for critical bug fixes in the production version. Branched off from main and merged into both main and dev.

Main Branch (main)

  • 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.

Development Branch (dev)

  • Purpose: Integrates all development work. Acts as the primary branch for ongoing development.
  • Usage: All feature branches are merged into dev. Developers pull from dev 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.

Feature Branches (feature/*)

  • Purpose: Develop new features independently.
  • Usage: Branch off from dev to start working on a new feature. Merge back into dev 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.

Release Branches (release/*)

  • Purpose: Prepare for a new production release.
  • Usage: Branch off from dev when the dev branch has enough completed features for a release. Merge into both main and dev 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.

Hotfix Branches (hotfix/*)

  • Purpose: Address critical bugs in the production environment.
  • Usage: Branch off from main to fix the bug. Merge the fix into both main and dev.
  • Naming Convention: Use descriptive names, e.g., hotfix/critical-bug.
  • Best Practices: Prioritize resolving the issue quickly and ensure it is tested before merging.

Workflow Example

  1. Creating a Feature Branch
    git checkout dev
    git pull origin dev
    git checkout -b feature/new-feature
    

Stakeholder

image

About

Five Dudes MoodMix is an innovative mobile application that is being used to easily generate playlists based of user's emotion and speech. a User will simply scan their face and based off of the emotion a playlist will be generated accordingly. Listen to music easier, use MoodMix!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published