I have been recently struck by the realisation that I have this webserver with this beautiful domain name, and I am not using it to anywhere near its full potential. I came across a tutorial on Code School on using AngularJS, and after following it and fiddling a little bit, I found myself looking for a project.
Fortunately, something came up pretty quickly. I was looking for a daily work summary app. I found iDoneThis but the interface is a little clunkier than I would like, and most importantly, it's a freemium solution. As a result, I decided I was going to code my own. Stupidly, I started without a scope or spec document, but now I'm trying to document what I've done and where I want to go with it.
- The application must be able to show completed tasks in a summary view
- The application must provide a simple way to add tasks on the web
- The application must provide a simple way to delete tasks on the web
- The application must look simple and attractive
- The application must be accessible from any recent browser, mobile or desktop
- The application should be able to accept tasks sent in via email
- The application should be able to identify tasks submitted by the same person via email or web
- The application should provide a simple way to update tasks on the web
- The application should allow one to view tasks completed over any particular time period
- The application should allow users to request a "morning summary email" of all tasks completed yesterday/last week.
- The application should be able to be packaged into a simple mobile app
- I plan to complete the application itself using nothing but AngularJS and HTML5/CSS3
- The application will use the Bootstrap 3 framework
- The application will depend on a PHP API to a MySQL database which stores the tasks (Arrest-MySQL)
- UserApp will provide basic, off-the-hook authentication of users as a solution until a full user log-in solution is necessary
- Mailgun will provide the mail-handling service that translates the mails into a JSON that can be added directly into the database.
1. Tasks can be submitted using a simple web-based interface.
2. Tasks can be submitted by email, although the parser cannot handle multiline emails yet.
3. All tasks submitted can be viewed.
1. Tasks cannot be filtered by creator or date at the moment - v1.0
2. Users cannot set a colour for their flair - v1.1
3. Updating and deleting functions are currently disabled on the API backend, and not implemented on the web - v1.0
4. The application does not currently associate email addresses with users - v1.1
5. The application does not send out a morning summary email - v1.2
6. The application is not yet ready for mobile packaging - v1.3
While I have been working on this, it struck me that I could reuse much of the code I have built up (especially the modifications made to the API, etc.) to build a suite of simple applications. There will be another module to the tasks application for tracking tasks to do rather than just the done tasks that are currently tracked. These will probably run off the same MySQL table, with a simple modification to the table structure adding a "complete" boolean and a "progress" int as columns. These can be set to 1 and 100 on the initial creation of the columns.
The second application I will create will be a Notes application, similar to Laverna. This will require more effort and a bigger code rewrite, but the same API should be OK for both with a few tweaks.