Git Product home page Git Product logo

aptitune-api's Introduction

aptiTune

Team Photo

Here's the API for Aptitune, an interactive sheet-music educational experience.

Description

AptiTune is an interactive, sheet-music learning experience. Ever felt like sheet music was too difficult? That you had to be born the perfect Beethoven to do anything with music? AptiTune can fix that.

AptiTune introduces exciting, live, and dynamic lessons that utilize multiple game modes while still teaching you content. There's badges to win, stats to see, and quizzes to test your knowledge. Learn all about sheet music in a fun and new way.

AptiTune features many different types of lessons. The first is a simple, fill-in-the-blank exercise. It shows a snippet of sheet music, and asks the user to identify the notes on the staff. The second is a listening exercise that plays a piece of music, and asks the user to identify which snippet of sheet music is being played. The third is a rhythm-testing activity that has the user follow a beat by pressing the spacebar at the right rhythm. The final activity type is a pitch-matching activity, in which the user matches the pitches of a given piece of sheet music.

Currently, AptiTune has 10 lessons. Pitch I and II both teach about the notes on the treble clef; Pitch III and Pitch IV teach about notes on the bass clef; Rhythm 1 teaches basic quarter and half notes; Singing I teaches pitch-matching; the Diagnostic Quiz gives you a sense of where you are with your strengths and weaknesses; and the Sightreading, Rhythm, and Listening Quizzes give a hard test over each subject.

AptiTune keeps track of stats for you, so you can know when you're making real progress. We keep track of how you do on your quizzes, how many questions you've gotten right, how often you're using the web-app, and where your strong-suits are. AptiTune also awards badges when the user is doing well, keeping track of these badges in a badge library on the profile page. The profile page also features a selection of five icons and changing the user's display name.

Architecture

AptiTune features a database built using MongoDb, holding lessons with multiple media types and user information. AptiTune links this database to the front-end using axios REST API, allowing the front-end to update and access the database. AptiTune is built upon a server using express. Additionally, AptiTune uses mongoose to design both user and lesson schemas for easy input into the MongoDb database.

AptiTune also features a built-in, local authentication, created using passport. It also stores multiple media types, such as images and audio files, in AWS S3 for easy access.

Setup

To setup, simply run yarn install.

Deployment

This backend API is deployed on heroku at the following: backend

Authors

Shane Hewitt Jacob Donoghue Sathvi Korlanda Gia Kim Kathy Cui Jordan Sanz

Acknowledgments

We'd like to thank Tim Tregubov for teaching us how to make a web app in 10 weeks. We'd also like to thank every react package author who writes a lot of documentation. You are the best.

aptitune-api's People

Contributors

jacobdonoghue avatar jason-feng avatar jordantsanz avatar kandikain19 avatar sathvi-k avatar shanechewitt avatar shchewitt avatar timofei7 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.