Git Product home page Git Product logo

ssas's Issues

Use transactions

There are several places where aren't using transactions, where we should be. This is especially true in the User model.

Improve error pages

At the moment, errors are presented with ugly, non-HTML error messages if something goes wrong, and sometimes they aren't notified at all (like when they try to login with bad information).

This should be improved, possibly by implementing a generic error page where an error message can be set through a request.

Restrict API keys to certain IPs

Since we know the service we will be integrating with will have a specific IP address, we should restrict access using a API key to a IP address.

This means:

  • Adding IP column to api_key in database
  • Checking against this IP in ApiService

Create user API

We should expose an API at /api.
It should have the following services:

  • /api/user/search POST
  • /api/user/{id} GET

Decouple page headers from page objects.

Right now, any page can only have one type of header. However, the type of header should be determined by the user's status (logged in/out), and not the page.

Add security information to front page

We should list the attacks we protect against on the front page. These include:

  • Session stealing (SSL)
  • XSRF (formkeys)
  • Replay attacks (formkeys)
  • XSS (sanitizing/validation)

Log to file

Currently, the log is only printed to the console. It should also be written to a file.

Write a proper deploy script, run as less privileged user

At the moment, Raptor Dating is run as one of our users, from a home directory. It should reside in a directory all our users have access to, and be run as a less privileged user.

We should then hook the deployment up with sbt, so we can simple write sbt deploy to run the new version.

Web interface doesn't handle unicode

The site fails when trying to create a user with Æ Ø Å and so on. We now the model and database layer handle these (through the unit tests), so it must be in the spray layer.

Login should generate new session id

Currently, the same session id is used both before and after login. This means that on a public computer, one could note the session id, then wait for someone to log in. Since the same id is used, one could now use the session id to act as the logged in user.

To remedy this, the session id should be change when logging in.

Add 'hug' feature

Users should be able to 'hug' each other. This means:

  • Adding a 'hug' relation to the database
  • Adding a 'hug' button when viewing other users' profile pages
  • Adding a view (possibly on a user's own profile page) where they can view hugs.

Normalize pages

Currently, pages vary wildly. They should be wrapped in a div with id="page" or something similar, so we can easily style them.

Investigate HTTP-only cookies for formkeys

At the moment, formkeys are sent as hidden fields in all forms. In theory, these would be visible to any injected Javascript on a page. It might be better to send the formkeys as HTTP-only cookies, as these shouldn't be visible to Javascript.

Make everything pretty

Currently, when a user visits the site, their soul is instantly destroyed by the design. This should be remedied.

Maybe Twitter Bootstrap?

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.