A task organizing app. Yep, it's a todo app.
Branch: master
Clone or download
Latest commit 42b357a Feb 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Move DTOs and DAOs into the BC infrastructure Feb 19, 2019
bin Install doctrine migrations bundle Nov 25, 2018
config Create controller for accounts Feb 23, 2019
data Add Zend Expressive Jul 15, 2018
features Rewrite feature test Feb 23, 2019
phpdocker Create a test webserver Nov 28, 2018
public Change to test environment for behat tests Nov 28, 2018
src Add in some extra checks Feb 23, 2019
templates Design list of tasks Feb 3, 2019
tests Add in some extra checks Feb 23, 2019
translations Installing symfony/framework-bundle Nov 25, 2018
.editorconfig Designing the empty journal page (#60) Jan 8, 2019
.env .env is dist, .env.local is local and ignored Nov 25, 2018
.env.test Configure doctrine migrations Nov 25, 2018
.gitignore Frontend tooling (#52) Dec 31, 2018
LICENSE Initial commit Jul 15, 2018
Makefile Move usage of composer to docker Feb 13, 2019
README.md Start first journal page (#54) Jan 3, 2019
behat.yml Rewrite feature test Feb 23, 2019
composer.json Frontend tooling (#52) Dec 31, 2018
composer.lock Move usage of composer to docker Feb 13, 2019
docker-compose.yml Create a test webserver Nov 28, 2018
infection.json.dist
package.json Single page application setup (#55) Jan 4, 2019
phpcs.xml.dist Add Zend Expressive Jul 15, 2018
phpstan.neon Cleanup PHPStan and mutants (#38) Dec 26, 2018
phpunit.xml.dist Use DTOs instead of arrays (#25) Dec 2, 2018
postcss.config.js Frontend tooling (#52) Dec 31, 2018
symfony.lock Update backend dependencies (#59) Jan 6, 2019
webpack.config.js Single page application setup (#55) Jan 4, 2019
yarn.lock

README.md

forthisweek

Over the past few months I used a system to organize my to-do list on a weekly basis. It's a mix and match of a regular to-do list, a weekly to-do list, and a bullet journal. I wrote about a blog post about this back in March. The interesting bits are:

Every Monday morning I write down what I need and want to do during the week. [...] If something pops up during the week I add it to the list. If something gets “obsolete”, cross it off. Every item gets a dot in front of it, just like with bullet journaling. Once it’s done I turn that dot into a plus and write down the date.

Next Monday I tally the previous week by writing down the to-do vs. done ratio. For any items left over from the previous week I turn the dot into a greater than sign and move it over to the new week and add new items to the list. If a task list “overflows” for 3 weeks in a row I strike it through and move it a Trello board.

And this here is my attempt at making an app for it.

Notes and guidelines

ForThisWeek is an app that implements this system of tracking tasks week over week in a journal. An organizer creates a journal for the year in which they'll track the weekly tasks. An organizer creates and organizes a list of tasks that they want or need to do during the week in the journal.

The max week number is the total number of weeks in the year to which the journal belongs. A week is from Monday to Sunday. Every week is numbered according to the current week of the year.

  • The tasks have no set deadlines, dates on which they need to be done.
  • The tasks can be done, moved to next week, overflown from next week, scratched, and archived
  • When a task is done, the date of completion is recorded.
  • When a task is moved to next week, it is moved into a queue of tasks for the next week.
  • When a task is overflown it means it wasn't done, moved, scratched, or archived during this week, so it overflows automatically to the next week.
  • When a task is scratched it means it's no longer relevant.
  • When a task is archived it means it overflew for 3 weeks in row and it is assumed no longer relevant.

flow diagram

Feature list

  • An organizer can create a new journal
  • When a new journal is created, start a new week
  • An organizer can add a task to the journal for the current week
  • An organizer can mark a task as done
  • An organizer can scratch a task
  • An organizer can move a task to the next week's task queue
  • The system can move not done tasks to the next week's task queue
  • The system can close the current week
  • The system can start a new week
  • The system can fill the new week with tasks from the task queue
  • An organizer can view a list of previous weeks
  • An organizer can view any previous week
  • An organizer can view the tasks in the task queue
  • The system can archive a task if it was added to the task queue 3 weeks in a row
  • An organizer can view a list of archived tasks

Do this list in order.

The design

I'm terrible at design. I've purchased the Refactoring UI book in hopes to make me a little less terrible at design. The book has some great advice which I'm writing down here to make it easier to implement.

Using TailwindCSS as the CSS framework.

Start with a feature, not a layout

Design features one by one and not an entire application all at once. So far the list of features to design is:

  • The page that an organizer sees when starting their 1st journal
  • The page that an organizer sees when they have no tasks for the current week
  • The page that an organizer sees when they have tasks for the current week

Choose a personality

This doesn't need to be a serious app, so going with a playful personality.

Limit your choices

Font sizes: 12px, 16px, 24px, 32px, 48px.

Use palette #12 (green) from the color palettes provided with Refactoring UI.

Line height: Higher for smaller text, smaller for bigger text.

For margins, paddings, dimensions, border widths and radius see Sizing.

Layout and spacing

Start with too much whitespace and remove until enough is left.

Sizing

Use multiples of 16px for sizes: 4, 8, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 640, 768.

Fonts

Roboto, Helvetica, sans-serif.