Web App project which allows SoundCloud tracks (and YouTube in the future) to be collected in playlists to 'Listen to them later'.
Similar to Instapaper/Pocket but for new free online music.
EDIT:
New URL http://listentoitlater.co
via streaming services and not buying or downloading. ie Spotify and Grooveshark - Many don’t buy digital files or pay for an online subscription for unlimited music.
new music from streaming services like YouTube and SoundCloud. How do they keep a track of what song you like? Listen It Later comes into place helping anyone who wants to keep all their New free online audio tracks from different streaming services.
• Focus on Curation of Playlists Project Overview - Idea from Read It Later and Instapaper but for specific to New Online Music - Bookmarklet for easily adding audio tracks into any playlist
performant JavaScript engine • Devices capabilities and compatibilities • Mobile or Tablet? • data plans still expensive • battery life still not good enough - The current web browser technologies have evolved greatly in the last few years. - HTML5, very most popular, by adding new HTML tags, Cascading Style Sheets (CSS3) and cross-platform JavaScript APIs. - Big move forward to standardise browsers to create a better experience for users and enabling web developers to build more interactive and dynamic websites. - Unfortunately when speaking specifically of HTML5 audio and video compatibility between browsers, there is a big divide about codec support and other issues. These will be further discussed in subsequently.
libraries for UI • Python Web Framework (Flask) • Database (MongoDB, NoSQL) • the reasoning is on the next slides - The project utilises modern browser technologies (HTML5 and AJAX) to collect audio and video content from different platforms such as YouTube and SoundCloud into playlists. - Flask a Python Web Framework - MongoDB, a NoSQL database. (next slides)
HTML5 vs Flash • Amazon Web Services • NoSQL Database (MongoDB) 14 Technical Architecture - Flash is better for Audio streaming in compatibility across browsers - NoSQL in a traditional Relational model, many tables usually equates to many joins for queries. Denormalising therefore is the opposite of the goal of a modern distributed database. - Adobe Flash Player runs in all major Desktop browsers
- One of the most practical, which were encountered while on work experience, occurs when switching from of Python programming and then returning to SQL, it can become difficult to remember the syntax of even simple queries. - A single command the JSON string that contains all the playlists and recordings within, is returned by traversing the database User and parsing all the fields and dereferencing the embedded documents.
NoSQL data-store - Object-Document Mapper (ODM) similar to an ORM that connects Python with MongoDB. - The diagram represents various documents (or tables) which themselves contain other documents. - For example: a user will have many playlists.
fact that a single person developed this project signifies that the software development process has been adapted and simplified - A methodology is very much needed because it provides a structure that imposes on the development of any software project - Why RAD? Flexibility and Adaptability Agile and XP have a focus on groups A disadvantage of RAD does not emphasise on the strategic system needs. The risk is that the system might work well in the short term, but not on the long-term objectives
replace DELETE delete /api/user/me /api/user/me/ playlists /api/user/me/ playlists/id /api/ recordings /api/ recordings/id /api/tags get the current user object not implemented as such update current user details (from the settings window) (not yet implemented) not enabled get the current user’s playlists when creating a new playlist, they are all instead sent as PUT request update all the user playlists delete all playlists (not enabled) get a single current user’s playlist not implemented update a single current user playlist, creating one if necessary (not implemented) delete a single playlist (not enabled) get all recordings based on tag, creation date, sorting, etc not implemented not enabled not enabled get a single recording by it’s id create a new recording (not implemented) not implemented not enabled get all the tags, sorted, not implemented not enabled not enabled Representational State Transfer (REST) is an architectural style - or "pattern" - guiding on the architecture of web services. Like "Ajax" itself, "REST" is a broad term and can be broken down into many smaller patterns. REST is centred around two basic principles: - Resources as URLs A resource is something like a "business entity" you wish to expose as part of an API. Almost always, the entity is a noun, e.g. a person, a car, or a football match. Each resource is represented as a unique URL. - Operations as HTTP methods. REST leverages the existing HTTP methods, particularly GET, POST, PUT, and DELETE, identified by the W3C HTTP Specification Why? For future Mobile app implementation
information from a social networking service such as Facebook or Twitter to sign into a third party website in order to create a new login account specifically for that website. Designed to simplify logins for end users as well as provide more and more reliable demographic information to web developers, thought such information is not been stored in the application.
Google Chrome 17 Mozilla Firefox 10 Mozilla Firefox 11 Audio Reproduction UI loading UI consistent Login and Account creating windows are displayed Scrolling and sections appear visible correctly Yes with Flash** Yes with HTML5 Yes with Flash or HTML5 Yes with Flash or HTML6 Yes with Flash or HTML7 Yes with Flash or HTML8 No* Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Testing & Evaluation Web Page Performance Network Utilisation
does a NoSQL Database works • Learn how JavaScript Frameworks work • Make it Browser-Compatible (including Internet Explorer) Challenges - Neilsen Heuristics - Usability testing tools - I learned Python