cs638's People
cs638's Issues
Restructure views directory
That flat directory is getting gross. We should come up with a directory structure that is more reasonable.
Use Gravatar for user images
Instead of having users upload images, we can just have them use Gravatar. Then we don't have to store that data.
Play Module (needs porting to 2.0)
https://github.com/mbarbieri/play-gravatar
Gravatar URL Constructor
https://github.com/ralfebert/jgravatar
Landing Page
We need a nice landing page that will, ideally, make the purpose of the site clear and capture user interest.
Here's an interesting post from Coding Horror that makes a few good points about how to make a good first impression:
http://www.codinghorror.com/blog/2012/10/judging-websites.html
Add About page
We need a page that can be reached from the nav-bar that talks about how awesome we are.
Release Discussion
@MarathonPaul
I'm copying our recent email discussion here to keep track of it and to give us a place to continue the discussion.
Event Attendees shouldn't be publicly viewable
If a user isn't logged in, they probably shouldn't be able to see the attendees of an event.
Attending relation
We need to add another "model" (i.e. table) to store the relation of users attending events. It seems to make sense to have this in a separate table so the state of attendees for events, and events that you are attending stay in sync.
Suggest race times from database of old races
I think that it would be nice if we could suggest a few races for them to add to their race history so they don't have to go through the process of entering them all themselves. We could store the results from the past years of races like Crazylegs, Madison Marathon, Lakefront Marathon and a few other local runs.
I wanted to do a webcrawl to get results but it wasn't able to get it working yet so I just wrote some python to parse the data from onlineraceresults.com to format the data into a .yml file. Not the way that I wanted to do it but it can give us some data for now.
Integrate MapMyRun maps on events
It would be nice if we could get permission to integrate MapMyRun maps into event pages. Maybe we don't even need permission, but we would still need to figure out how to do it.
Following relation
User's should be able to "follow" one another in an asymmetric fashion similar to Twitter. This would then necessitate a public/private profile setting, whereby you can only follow a private account if they are following you.
This should probably be treated as a separate "model" in the sense that the relation is stored as a separate table.
Edit Profile - Zip code label says "URL"
Copypasta error. I was pretty tired.
Make success and error messages part of the main template
There are quite a few pages with copy-pasted success and form error alerts at the top. Perhaps these could be part of the main template with text provided by flash key-value pairs.
Add units to event distance
This should probably be fixed to one of miles, kilometers, or meters. You can use a little select form control or radio buttons.
View events attending on user pages
You should be able to see the events that a user is attending on their user page.
Implement session security
We need to assign users cryptographically random session IDs with expiration dates each time they log in. We also need to put that in the session cookie an make sure that every secure action they take validates against the session cookie username and ID.
Add Settings page
When users are logged in, they should be able to access a settings page that allows them to change their password, and change privacy settings.
Add calendar/viewy-thing for upcoming events
Users should be able to see a list of upcoming events that they have chosen to "attend".
Add trophy/achievement system
There could be a data structure that stores some flags for different achievements for each user. Simple achievements could be used for motivating users to actually use the site. Some example achievements could be:
-Creating your first event
-Attending your first event
-Following your first user
-Being followed for the first time
-Verifying your email
-Getting some # of users to attend an event you created
-...
User "about" field can only be 255 characters long
It should either be limited on the client side or it should be increased on the database side.
How can we determine distance between users?
If we want users to be able to find other users nearby, we will need to be able to calculate the distances between them. I think it's a reasonable assumption that we can start with a US market and just ask users for their zip codes (this should be required). People have already solved this distance between users using zip codes.
http://stackoverflow.com/questions/3983325/calculate-distance-between-zip-codes-and-users
Group page
Need a group page to view group info. Users should be able to "join" groups from here.
Upgrade to Play 2.1
Change fonts to Font Awesome.
I like the looks of Font Awesome better than Glyphicons. Maybe Font Awesome would be better? Have a look.
http://fortawesome.github.com/Font-Awesome/
User page (with editing)
Need to add user profile pages. The user logged in, should be able to edit their page as well.
Username, Email, and Password validation
The account creation process currently doesn't validate the email and password entered by the user. Neither should be empty, the email can be regex checked, and the password should probably be regex checked to consist of alpha-numeric characters plus punctuation and the like. Actually, usernames should probably be validated this way as well.
A way for us to easily post a message on the main page.
I'm not sure how other websites do this but lets say we wanted to post some sort of message to everyone. This could be something like a tip or a new update to the website or whatever. I'm guessing we wouldn't want to have to hard code that into the project and then update it on heroku. We should have some way for us as admins to be able to post a message to the database that will display on the main page.
Add a datepicker control
Events created when not logged in cause crash when viewed
A null creator username is stored and then checked when you try to view the event. Perhaps clicking on the "Create Event" link should redirect to the login page if not logged in.
Add sidebar/topbar for Ads into main template.
We need to have a place for ads, since that currently seems like the most logical form of revenue.
Group creation page
We need a page where user groups can be created. Users that are logged in should be able to create groups.
Links in notification boxes
For example, there is a notification that suggests signing in when you go to the feed. This should link to the sign in page.
Costs and business structure
We can try to track some idea of operating costs in this issue. I'll just note rough monthly costs here.
Wisconsin LLC (one time): $130
Web server: $0
Database: $10
Domain (per year): $20 *this is high variance
SSL certificate (per year): $400
Links
http://www.heroku.com/pricing
http://guides.wsj.com/small-business/starting-a-business/how-to-start-an-llc/
https://www.symantec.com/products-solutions/families/?fid=ssl-certificates
http://www.wisconsin.gov/state/byb/LLcompany.html
http://www.godaddy.com/
Fix date submission on race times
Dates are being submitted, but they display off from what was submitted. It could be something with the code that converts milliseconds to a display date, or it could be the conversion when the form is submitted.
Follow and Attend relations should be created via POST instead of GET
Right now, when a user clicks on the "Follow" or "Attend" buttons on user or event pages, a GET request is what accomplishes the creation of the relation. I did this for following for layout purposes (dumb), but it should probably be a POST. The layout can remain the same if we just use javascript.
Comments on Event pages
Users should be able to leave comments on event pages
Integrate Google Maps API for events
There are actually a lot of good tools available for doing mapping stuff. At the simplest level, we may be able to let users just draw their runs with lines on a map.
https://developers.google.com/maps/documentation/javascript/examples/
https://developers.google.com/maps/documentation/javascript/examples/drawing-tools
http://www.developer.com/tech/article.php/3528381/Integrating-Google-Maps-into-Your-Web-Applications.htm
Properly update 5k prediction when race times are added
Event page
Need to have an event page with the ability for users to "attend".
Truncate String fields that aren't large text blocks
Any field that isn't expected to be a large text block like a user's 'about' field, or an event's 'description', should be truncated. Unless otherwise specified, Strings are treated as varchar(255) and should be truncated so as not to cause errors when saving to the database.
Add "Following" and "Followers" to user pages.
Add the ability to view a user's followers and the users they are following to the user page.
Event IDs should be auto-generated
I guess you can actually have IDs auto-generated for records, so we should just let that happen instead of manually generating a UUID. All you have to do is remove the line:
this.id = java.util.UUID.randomUUID().toString();
from the constructor and it will auto-generate them.
This will look better in the link when viewing events.
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.