Code Monkey home page Code Monkey logo

taskmaster's Introduction

TaskMaster Android App

Description

We are building a TaskMaster App!

Change Log

Day 1

  • Build main page to match wireframe
  • Include heading at top of page, an image placeholder for the "my tasks" view, and buttons at the bottom to route to "add tasks" and "all tasks" pages
  • Build "Add a Task" page
  • Include allowing users to type in details about a new task (title and body).
  • Include a displayed "submitted!" label on the page when the user clicks the "submit" button
  • Build the "All Tasks" page
  • Include an image with a back button - no functionality needed at this point
  • Create directory called screenshots
  • Build unit tests for any testable code at this point
  • Stretch goal: Consider the styling for this app. Decide on a color scheme and font families to use.

Screenshots

Home page
Add Task page
Add Task page with Toast
All Tasks page

Day 2

  • Create a Settings page. It should allow users to enter their username and hit save.
  • Modify the main page to contain three different buttons with hardcoded task titles.
  • When a user taps one of the titles, it should go to the Task Detail page, and the title at the top of the page should match the task title that was tapped on the previous page.
  • The homepage should also contain a button to visit the Settings page, and once the user has entered their username, it should display “{username}’s tasks” above the three task buttons.
  • Update homepage screenshot and add a screenshot of Task Detail page.
  • Build unit tests for any testable code at this point
  • Stretch goal: Allow the user to specify on their settings page how many tasks should be shown on the homepage. Use this to dynamically create buttons for as many tasks as the user requests.

Day 3

  • Refactor homepage with a RecyclerView holding Task data
  • Create a task class. A task should include a title, body, and a state. The state should be one of "new", "assigned", "in progress", or "complete".
  • Create a ViewAdapter class that displays data from a list of Tasks.
  • In MainActiviy, create at least three hardcoded Task instances and use those to populate RecyclerView/ViewAdapter
  • Ensure that clicking any task in the RecyclerView appropriately launches the detail page with the correct title.
  • Update homepage screenshot
  • Create Espresso tests
  • Stretch goal: Allow the user to specify on their settings page how many tasks should be shown on the homepage. Use this to dynamically create as many tasks as the user requests for display in the RecyclerView.
  • Stretch goal: Display the description of the correct task instead of the Lorem Ipsum text on the task detail page.

Day 4

  • Refactor model layer to store Task data in a local database
  • Set up Room
  • Modify Task Class to be an Entity
  • Modity Add Task form to save data entered as a Task in local database
  • Refactor homepage's RecyclerView to display all Task entities in database
  • Ensure title, description, and status of selected task are displayed on the details page
  • Use Espresso to test relevant functionality of application
  • Stretch goal: Allow the user to specify on their settings page how many tasks should be shown on the homepage. Use this to dynamically display as many tasks as the user requests for display in the RecyclerView.
  • Allow the user to specify on their settings page how the tasks should be sorted (by title, status, or creation time).

Day 5

  • Refactor model layer to store Task data on a remote server and use the data to cache data locally
  • Modify Add Task form to post the entered task data to the server
  • Ensure homepage refreshes the tasks shown after a task has been added
  • Stretch goal: Allow the user to specify on their settings page how many tasks should be shown on the homepage. Use this to dynamically display as many tasks as the user requests for display in the RecyclerView.
  • Stretch goal: Allow the user to specify on their settings page how the tasks should be sorted (by title, status, or creation time). Stretch goal: Allow the user to delete a task from the task detail page. Delete that task both on the server and locally.

Day 6

  • Build a scalable backend with AWS Amplify
  • Create an AWS account and install Amplify CLI, follow Amplify Getting Started directions to set up application
  • Using the amplify add api command, create a Task resource that replicates existing Task schema. Update all references to the Task data to instead use AWS Amplify to access data in DynamoDB instead of in Room
  • Modify Add Task form to save data entered in as a Task to DynamoDB
  • Refactor homepage's RecyclerView to display all Task entities in DynamoDB
  • Stretch goal: Cache data fetched from DynamoDB into local Room database

Day 7

  • Add second resource on backend, consumed by frontend
  • Create a second entity for a team, which has a name and a list of tasks. Update tasks to be owned by a team
  • Manually create three teams by running a mutation exactly three times
  • Modify Add Task form to include either a Spinner or Radio buttons for which team that tasks belongs to
  • In addition to a username, allow the user to choose their team on the Settings page. Use that Team to display only that team's tasks on the homepage
  • Add Espresso tests for the team entity and functionality
  • Stretch goal: Cache data fetched from DynamoDB into local Room database

Resources

taskmaster's People

Contributors

ncarignan avatar sajafisher29 avatar

Watchers

 avatar  avatar

Forkers

ncarignan

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.