breakpoint's Issues
Data Upload
Once we've compressed our audio data to core features, we need to upload this data to the Mongo server, ideally with some limitations in place to prevent abuse. There's a bit of work on both the frontend and backend required to enable this.
Associate Sound Data w Users
Currently anyone can upload stuff; let's restrict uploading to users that are logged in (have to take care of this securely somehow), and associate the sound bite they upload with their username (to support deleting later on).
Uploading: Save to database
Currently we can upload to the webserver but we need the webserver to save things in our datastore; a schema has been designed but stuff has to be hooked up, which might be really easy or really time consuming.. we'll see.
Upload Limitations
We should place some kind of limitation on how much users can upload so we don't run out of database storage because someone decided to spoof us with 200000 hours of generated audio.
Deploy on Production Server
We need to deploy on a production server at some point; possibly DigitalOcean & domain cafedaydream.com, possibly a Google provided server.
Maximum Zoom
OperationFailure: database error: Malformed geo query: { $geoWithin: { $box: [ [ null, null ], [ null, null ] ] } }
Happens when we zoom out too much on the map - we should disable zooming out past a certain point (noone needs their map to wrap over a few times..)
Positioning of login buttons changes
If you open up the homepage at default zoom, the 'sign in with g+' and 'login' buttons are perfectly aligned. However, at different zoom levels, they become misaligned. Not a major issue but kind of annoying. See here for ideas perhaps.
Heatmaps Display Options
We should have multiple ways to display the heatmap data. Ideas:
- Real time map
- Accelerated time lapse
- User can choose color palette
Sign in screen shown by default
If you log on, leave the site & come back or refresh the page, you're presented with the signin screen for a split second before we $('#loginbox').hide() it. This is a little sloppy as far as UX goes and we should address it.
Could make the entire login box only injected into the template in app.py if 'username' in session. Straightforward fix but not a priority.
Logins Could Be Smoother
We should create a warning message for collision signups, and fade the map background when the login box shows up.
Client Querying Datastore
AJAX, Jinja data injection, or the likes is needed to allow the client to query our datastore for map points. Ideally we would support queries by date and location (for time based manipulations + only requesting points that are on the map area being viewed).
Divs on top of Divs
Data Generation
The point of this app is to crowdsource location-sound data. As things stand, we're not going to have the chance to acquire many real users between now and ship day. However, we can certainly generate almost real data from a bunch of mp3s and locations preferably corresponding to population density, then shoot that directly into the MongoHQ datastore (or whatever we upgrade to for production). Not a huge priority but soon it will be.
View Individual Sound Bites
The ability to listen to individual sound bites would be a big deal. Definitely something to shoot for if we have time but not a high priority.
Audio Analysis
We need to figure out how to compress our audio analysis data into numbers that can produce a clear correspondence between visualization and audio. This is a fairly difficult problem, and very crucial to the app's usefulness, but it should be doable with measures like spectral centroids.
Delete Sound Bites
The entire reason we have a user login system is so people can control what they upload after they've clicked 'Allow'. Creating an interface for selecting and deleting bites might be kind of time consuming but definitely something we want to have.
Draw Heatmaps
At the core of our application is the way we draw heatmaps, probably the most important part of it. We need to be able to use heatmap.js on a point by point basis, perhaps overriding their time decay function for our own thing. Ideally we'll be able to control gradient, opacity, intensity, and radius of each bite; I can't figure which of these is more important, we should really have all of them.
@jennyzw and @kevinco26 are responsible for this.
Changing gradient on custom heatmap.
I figured out how to change the color of a circle (red, green, yellow, etc) by passing in a parameter, but am not successful yet with gradients. I created a couple of gradients for testing, but when I pass the gradients (gradient1, gradient2), it does not change. Just picks up the last color in the gradient. The gradients work standing alone.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.