Giter VIP home page Giter VIP logo

h22-2n6-r25tp5-1980268's Introduction

TP #5 BALADEUR MULTIFORMATS (Music Player) 🎼

Note: This project will also be graded on the quality of the code and the comments, meaning that it can bring the grade down by up to 15% of the final grade of the project. ‼️

Note 2: ALWAYS TEST THE CODE BEFORE PUSHING IT!!! ‼️

Note 3: The name is a standard that must be followed within the Software Engineering department. ‼️

Final class project for the semester. This app simulates an Android music player. The goal of this project is to touch base in all of the new concepts seen in class during the semester. Those of which can be found below:

  • Inheritance ✔️
  • Polymorphism ✔️
  • Classes ✔️
  • Abstract Properties ✔️
  • Static Classes and Methods ✔️
  • Git and Version Control ✔️
  • Exceptions Management ✔️
  • Unit Tests ✔️
  • Test Driven Development (TDD) ✔️

▶️ Description of the Software 🚀

The goal is to develop an software that will simulate a smartphone capable of reading audio files of different formats. The software WILL NOT read actual files, but instead it will read text files with the lyrics replacing the audio. Consequently, instead of the audio being played, the lyrics will be requested on demand whenever the user selects the desired song. The accepted audio types will be the following: AAC, MP3 and WMA

▶️ Technical Description of the Software 📜

A folder called "Chansons" (French for Songs), will contain a song for each one of the songs. the files will have the following extensions:

  • .AAC
  • .MP3
  • .WMA

As it is a simulation, the files will in reality be a file that can be read with any simple text editor (VIM, NANO, Notepad++).

The structure of the audio formats are much simpler than the structures used in real life. All of the files begin with a line that contains the headers of the song, followed by a long string of unreadable characters containing the lyrics to the respective song. Note that each different lyric will have a different encoding and will thus need to be decoded to be properly displayed in the text area. In the material provided, a static class with several different methods will be used to decode the content.

The table below provides the details of the headers of each different file type in their respective orders.

AAC Title Artist Year -
MP3 Artist Year Title -
WMA ID Year Title Artist

In order to properly simulate reading the audio file, the lyrics will only be read from a file at the time of request, meaning that the lyrics will not be stored in a field or in an automatic property.

▶️ TO-DO's ✅

*Note: After each thing that gets completed below, you MUST do a git commit and git push!!!*

  • Set-up GitHub repository ✔️

  • Define interface IChanson ✔️

    • Commit Message: FCT : TODO #02 Ajout de l’interface IChanson
  • Define the abstract class Chanson ✔️

    • Commit Message: FCT : TODO #03 Ajout de la classe Chanson
  • Define inherited class ChansonAAC ✔️

    • Commit Message: FCT : TODO #04 Ajout de la classe ChansonAAC
  • Define inherited class ChansonMP3 ✔️

    • Commit Message: FCT : TODO #05 Ajout de la classe ChansonMP3
  • Define inherited class ChansonWMA ✔️

    • Commit Message: FCT : TODO #06 Ajout de la classe ChansonWMA
  • Define interface IBaladeur ✔️

    • Commit Message: FCT : TODO #07 Ajout de l’interface IBaladeur
  • Define class Baladeur without completing the code for the methods. Ensure compilation is successful before push. ✔️

    • Commit Message: FCT : TODO #08 Ajout de la classe Baladeur
  • Complete method ConstruireLaListeDesChansons ✔️

    • Commit Message: FCT : TODO #09 Complétion de la méthode ConstruireLaListeDesChansons
  • Complete code for AfficherLesChansons ✔️

    • Commit Message: FCT : TODO #10 Complétion de la méthode AfficherLesChansons
  • Complete method ConvertirVersAAC ✔️

    • Commit Message: FCT : TODO #11 Complétion de la méthode ConvertirVersAAC
  • Complete method ConvertirVersMP3 ✔️

    • Commit Message: FCT : TODO #12 Complétion de la méthode ConvertirVersMP3
  • Complete method ConvertirVersWMA ✔️

    • Commit Message: FCT : TODO #13 Complétion de la méthode ConvertirVersWMA
  • Define 4 tests for the class Consultation ✔️

    • Commit Message: FCT : TODO #14 Ajout des tests pour la classe Consultation
  • Define 4 tests for the class Historique ✔️

    • Commit Message: FCT : TODO #15 Ajout des tests pour la classe Historique
  • Complete the FrmPrincipal.cs in order to ensure the whole program works as expected. ✔️

TO-DO's continued ✅

Note: This part is not a part of the project. It will be for my own learning purposes. Meaning that the above list will most likely be completed before any of the ones below get completed.

  • Complete and well documented README ✔️
  • Set CI/CD workflow in the repository. Tutorial can be found here
  • Add GitHub Pages documentation website.
    • Add domain back to the repositories.

h22-2n6-r25tp5-1980268's People

Contributors

kenjitagawa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.