Next week, we’re going to have our first Hackathon at MakerSquare (on Monday/Tuesday). My group has decided to build a rudimentary task management web application, so I thought I’d take some time to write about some of the features our application should have.
For our app, a user will have the ability to add new tasks to their schedule, and assign each task to a day(/days) with a duration and type (e.g. work, personal, housekeeping, school, etc). A user will be able to submit this information via a form, and upon submission the data will be saved to a database (likely PostgreSQL, as that’s what we’ve been working with this week). A task will be a RESTful resource, so that a user can easily create, view, update, and destroy tasks on their schedule. A user can have one schedule, and a schedule can have many tasks. Implementation of these features will mark the completion of our (very) minimum viable product.
Once we create our MVP, our next focus will probably be on the user interface of our app. For our UI, we will be using Bootstrap, which will be our first experience with front-end frameworks (We will be using Ruby/Sinatra for the back-end). Ideally, our application will be responsive enough to handle browser resizing effectively.
After creating the UI, our next goal will be to create a basic authentication system. If we have enough time, we will try to create this from scratch, otherwise, we will look for an authentication plugin for Sinatra. A user will be able to sign up with a name, email address, and password (with confirmation), and sign in with their email address and password. A user will also be a RESTful resource, so that a user can create an account, view/edit their account, and delete their account. A user should also be able to sign out, and have their name displayed at the top of the page when they are signed in.