GithubHelp home page GithubHelp logo

cs638's People

Contributors

finnkuusisto avatar

Stargazers

 avatar

Watchers

 avatar  avatar

cs638's Issues

Restructure views directory

That flat directory is getting gross. We should come up with a directory structure that is more reasonable.

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.

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.

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.

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 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
-...

Group page

Need a group page to view group info. Users should be able to "join" groups from here.

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.

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

@PaulBolanowski

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.

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.

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 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.