GithubHelp home page GithubHelp logo

docsmage / relaxio Goto Github PK

View Code? Open in Web Editor NEW
34.0 34.0 4.0 570.17 MB

Create your own ambient sound for relaxation.

Home Page: http://relaxio.me/

License: MIT License

JavaScript 35.06% HTML 47.66% CSS 17.28%
angular bloc bootstrap javascript relaxing

relaxio's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

relaxio's Issues

Display visually intuitive list of sounds

  • Use HTML/CSS to display/style page title, app icon, and list of sound placeholders
  • Create SoundController.js file which will control the display and interactions of sounds
  • Separate controller into it's own folder

Add an SSL/TLS certificate

Any website or application that has a login system should be using an ecrypted connection.

There's only so much valuable data that an attacker could get by intercepting a Relaxio login (so far?), but TLS will give a little extra protection for users who unfortunately reuse passwords across multiple services, and could help prevent cleartext email addresses from being added to a spam list.

Initial project setup

  • Add front-end project starter kit files
  • Update index.html w/title info
  • Add module, state, ui-router, & controller to app.js
  • Have page display title info in controller

Links in 'About' and 'Contact' should redirect to those templates

  • Create templates for About and Contact pages
  • Create MenuService and MenuController
  • Add functionality to allow users to be directed to 'about' and 'contact' pages
  • Optional: have them be external links so users can link their friends directly to those pages as desired

A saved mix can be the default when they land on the page

  • On SavedMixes template, add functionality for user to indicate a 'default mix'
  • Add functionality into SavedMixesService, SavedMixesController && MainController that a 'default mix' can be established and should play when the user first lands on a page

Allow users to sign-up/login via Facebook

  • Use Facebook API to implement signup and login functionality
  • Visually depict 'Sign up / Log in via Facebook' icons as needed
  • Store user data in Firebase
  • Ensure that if that email address already exists in our database, user will receive message stating that they have already an account created via email

Possible alternatives to a login system

There's a tech security adage I heard somewhere that says the best way to protect some data is to not have it. That is, someone breaking into your system can't steal any data that doesn't exist. Users would not have to trust your application, and you would not have to worry as much about protecting your login backend, if you implemented alternative ways of saving user mixes.

Such as local storage. Local storage, I'm guessing, would be simpler to implement, and greatly reduces the "attack surface" for an application like Relaxio. One downside of local storage is that there's not really a good way for users to take the data with them to other devices or browsers.

Another possible solution would be to create a URL for the current mix, where the sound sources and volume levels are encoded as URL fragments or query strings. This might be a little more complex than local storage, but it would allow users to save their mixes as bookmarks, which all the major browsers can sync across devices, or which users can export and import to different browsers.

Just a thought. You already have a login system in place, so you don't necessarily have to throw that away; local storage or a custom mix URL could also work as just another option for users. But it occurred to me that maintaining a database of user data, any kind of user data, is a responsibility I would personally prefer to avoid if possible, so I'm just saying.

Allow users to login via email & store login data in Firebase

  • Create LoginController and LoginDirective
  • Implement functionality in those files to allow users to login via email
  • Store login info in Firebase
  • Utilize cookies to ensure that by default users are signed in
  • Add login button via HTML/CSS
  • Add pop-up template for logging in

Allow users to save mixes

  • Create SavedMixesService and SavedMixesController
  • Add a 'Save' button via HTML/CSS
  • Allow user to give a title to their saved mix, let them know visually which sounds are included
  • Create a popup SavedMixes template to display this functionality
  • Implement functionality to recognize user login and store saved mix title and URLs via Firebase
  • Optional: let them know if that sound is already saved under their info

signuppopup should go away after 'login' or 'signup' is clicked (with route change)

As of right now, clicking anywhere outside of signuppopup makes it disappear - however, taking action such as clicking 'signup' or 'login' currently does not send the modal away. This should not be the case.

Initial investigation into this issue lead me to http://stackoverflow.com/questions/23762323/is-there-a-way-to-automatically-close-angular-ui-bootstrap-modal-when-route-chan I attempted to implement the top solution by updating the .run statement in my app.js file. This did not work.

Next, I tried adding ng-click="closeModal()" to each URL in signuppopup.html, as in Sign up to save your mix! This also did not work, despite the fact that NavCtrl is the controller for that file, and that the closeModal function in NavCtrl appears to be written correctly according to the documentation provided by angular.

At this point I am stepping back from this issue to try fixing it again later. Submitting here to document my progress and also to separate it out as a different issue from issue #43.

Allow users to sign-up/login via Twitter

  • Use Twitter API to implement signup and login functionality
  • Visually depict 'Sign up / Log in via Twitter' icons as needed
  • Store user data in Firebase
  • Ensure that if that email address already exists in our database, user will receive message stating that they have already an account created via email or Facebook

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.