Git Product home page Git Product logo

todo-list-app's Introduction

ToDo List Application

This is a starter project for Java developer candidate testing.

Overview

This is a web application with REST endpoints for managing a todo list (a list of tasks assigned to users). The application is set up to use Maven, Spring Boot, Hibernate, and an embedded H2 database.

Your job is to finish the application according to the user stories defined below. Please test your solution as you think best. Please ask as many questions as you think is necessary.

User Stories

The user of your application, the "todo list manager", is responsible for creating users, creating tasks, assigning tasks to users, and setting task statuses using a collection of REST endpoints. The todo list manager expects all REST endpoints to return data in JSON format.

  1. As a todo list manager, I need a REST endpoint to create new users.
  2. As a todo list manager, I need a REST endpoint to change an existing user's user name.
  3. As a todo list manager, I need a REST endpoint to delete a user.
  4. As a todo list manager, I need a REST endpoint to list all of the users.
  5. As a todo list manager, I need a REST endpoint to create a new task. Tasks have a name, description, status, and assigned user. Task statuses should include "Not Started", "In Progress", and "Complete".
  6. As a todo list manager, I need a REST endpoint to update a task.
  7. As a todo list manager, I need a REST endpoint to list all tasks along with their assigned users.
  8. As a todo list manager, I need a REST endpoint to list all completed tasks along with their assigned users.
  9. As a todo list manager, I need a REST endpoint to list all tasks that are not completed along with their assigned users.
  10. As a todo list manager, I need a REST endpoint to list all tasks that are in progress along with their assigned users.
  11. As a todo list manager, I need a REST endpoint to list all tasks that are not started along with their assigned users.

Bonus Stories

The following user stories are considered to be bonus functionality and are not strictly required.

  1. As a todo list manager, I need to be able to create multiple separate todo lists. A todo list should have multiple tasks, tasks can belong to multiple todo lists, and tasks are still assigned to a single user.
  2. As a todo list manager, I need a REST endpoint to list all tasks for a particular todo list.
  3. As a todo list manager, I need a REST endpoint to list all tasks grouped by todo list.
  4. As a todo list manager, I need a REST endpoint to delete todo lists.

Getting Started

  • To build the project, run mvn package.
  • To run the application, use the provided startup.sh script or run the project's jar file directly. The server will start on localhost on port 8080.
  • The embedded H2 database will be automatically configured based on your entities when the application starts up.
  • Feel free to make any modifications to the existing code that you see fit so long as you continue to use Maven, Spring Boot, and Hibernate.

todo-list-app's People

Contributors

zjx-immersion avatar

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.