Skip to content

Latest commit

 

History

History
73 lines (61 loc) · 2.95 KB

Readme.md

File metadata and controls

73 lines (61 loc) · 2.95 KB

To run the application locally

  1. Execute this in your terminal to initially allocate more memory
export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128M
  1. Build and install all dependencies
mvn clean install
  1. Start the application
cd quick-web/
mvn spring-boot:run

The app runs on localhost:8080/

If you want to change the port that the server runs on, you will need to make changes in application.yml and app.js

Database settings

You can change these properties in application.yml

Run production.sql to create the initial tables and some data.

psql -U postgres psql -d production -U sylvain --password

Technology Stack

  • Spring boot is used which makes writing server side code a piece of cake and it handles a lot of the menial tasks with ease. -- REST api
  • UI Developed completely using Bootstrap and jquery.
  • Angular JS is used in the UI to talk to the backend via the REST api provided by the server.
  • Wicket is used for parts of the UI, like the admin page.
  • Postgres used for the database. Since Hibernate is used for querying the database, it should be quite a simple change to swap the underlying database to something else like MySQL, Oracle, etc.
  • Maven is used for dependency management.

Credits

The landing page uses the template from http://startbootstrap.com/template-overviews/grayscale/ The app uses the base template from http://startbootstrap.com/template-overviews/simple-sidebar/

TODO

  • Ability to register new users
  • Authentication
  • User sign in and redirect
  • Prevent unauthorised access
  • Convert to a multi module maven project
  • Resize images to a smaller size for faster loading
  • Remove unnecessary html files
  • Format HTML files and remove commented out code
  • Write instructions on how to setup database and run application

Future tasks

  • Sanitize register/sign in form to ensure a correct email is entered
  • Ability to delete categories and projects
  • Ability to see tasks assigned to the current user
  • Ability to hide Completed tasks
  • Show a strikethrough, when a task is completed
  • Allow users to add a description to the task. Data model already supports this.
  • Allow users to add a description to the project. Data model already supports this.
  • Identify UI usability issues. e.g. When a user types in a task and adds it pressing 'Enter', then text entry box should not lose focus
  • SSL support
  • Use flywayDB for management of database sql changes
  • Checks for sql injection
  • Check for OWASP vulnerabilities
  • Ability to delete Categories and Projects
  • Document the API
  • Status page for users to check current/past system status
  • Responsive website that works on mobile/tablets
  • iOS/Android apps using the REST API