Git Product home page Git Product logo

mediamanagersynopticproject's Introduction

Media Manager

Week long QA synoptic project to create a media manager that displays media files, and allows organization and categorization of media in directories and playlists.

Project Overview & Objectives

You work for Whizzy Software, a software house specialising in serving the needs of clients in the media industry, such as TV and radio companies, music streaming services, etc. One of their clients’ needs a stand-alone component that supports the organisation of media files on a device such as a desktop computer, laptop, tablet or smartphone. Your manager would like you to design, build, and test an initial version of this component – the “Media Organiser”.

Critical Activities

  • Review all the key information and create a design for the media organiser;
  • Construct the media organiser in accordance with the design;
  • Test that the media organiser meets its requirements;
  • Document what you built.

Background Information

  • Whizzy Software develops software components for clients in media industries: music, video, radio, TV etc.
  • This project, for one of their clients, is to build a component intended to form part of larger systems which will need to be ported to other platforms.
  • The component will be used as a fully-functional prototype that the client can use to test requirements with their own customers.
  • The component may run on any execution environment of your choice, on a desktop computer or a mobile computing device.
    • The execution environment should support a local filing system that may contain streamable media files (AAC, MP3, WAV, MP4, AVI, etc).
    • The component should launch as a stand-alone application in that environment.
    • The component does not need to access the network.
  • The component should be designed and built to production standards.
  • You are advised to get a basic version of the component working first, before adding richer features. Examples of richer features could include:
    • A choice of ways to browse the contents of the organiser.
    • The ability to sort Playlists according to various user-specified criteria.
    • Showing thumbnails of images in the user interface.
    • The ability to change the scope and search again during a session.

Conceptual Model

The UML model below shows the main concepts required by the application and their relationships. Data held in the memory of the organiser, and data loaded and saved by the organiser, should correspond to this conceptual model. Conceptual Model

  • Each MediaFile has a name which is a valid filename (such as “Moonlight Sonata”), a file path (such as “D:\Data\Music\”), a file type (such as “MP3”), and a comment.
  • Each MediaFile may be associated with zero or more Categories, each of which is named by a string (such as “Classical”).
  • Each MediaFile may be related to zero or one Image, where an Image has a filename and a file path.
  • Each MediaFile may appear ordered in any number of PlayLists

Use Case Model

The UML use case model below shows the interactions taht a user may have with the media organiser. Use Case Model

Scope

  • Specify file paths of interest, i.e. the locations in the filing system where the organiser will look for MediaFiles.
  • Specify file types of interest, i.e. the types of streamable MediaFiles that the organiser will look for.
  • Search for MediaFiles, i.e. within the specified locations, find all the Media Files of the specified types and create corresponding data structures within the organisers internal state.

Load & Save State

  • Save the internal state of the organiser (i.e. the set of MediaFile data, Annotations, Image data and PlayLists) in a text file.
  • Load the state of the organiser from a previously saved file.
  • You will need to design the format of these files so that your program can save and load them easily. You may consider basing it on XML, JSON or any other format of your choice.

Specify Categories

  • Allow the user to specify a set of Categories which may be associated with MediaFiles.
  • The user may add a Category, delete a Category, or rename an existing Category.

Manage Media Files

  • The user may select a MediaFile.
  • The user may add, edit, or delete a comment about the selected MediaFile.
  • The user may add or change an Image related to the selected MediaFile.
  • The user may choose or change the Categories associated with the selected MediaFile.

Make Playlists

  • A PlayList refers to a sequence of MediaFiles chosen by the user.
  • The user may create and delete PlayLists, change their names, and reorganise their content.

Design

Below is the initial design for the media manager. Initial UI Design

mediamanagersynopticproject's People

Contributors

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