Git Product home page Git Product logo

technical-challenge's Introduction

Overview

This project contains a technical exercise for Java programmers.

Building

The build requires to use Maven. The configuration file is provided. Please feel free to add any dependencies that you may need.

Description of the exercise

The project contains a very simple Swing application.

Swing application

The application is simple. It handles a list of Task objects. Each task object represents something to be realized, it contains a creation date and a status.

We have three buttons that enables the user to add a task, remove a task and mark a task as finished.

The implementation is not finished, and the goal of this exercise is to implement the missing features.

Missing features to be implemented

Implement the function to add a new task

The button to add a task is not implemented. We created the AddTaskClickListener listener that is invoked when we click on the button, but it does nothing.

Implement the listener that the user can input the required information to add a new task to the task list. Once the task is added, the model should be updated and the UI refreshed accordingly.

Complementary question : be careful to not add invalid task names :

  • no empty task
  • tasks should be alpha-numerical with spaces.

Implement the function to remove a task

The button to remove a task is not implemented. We created the RemoveTaskClickListener that is invoked when we click on the button, but it does nothing.

To remove a task, the Task object must be removed from the model, the model refreshed, and the UI refreshed accordingly.

Implement the function to mark the task as completed

The button to marks the task as completed is not implemented. We created the markTaskCompletedClickListener listener that is invoked when we click on the button, but it does nothing.

To mark a task, the status of the Task object must be updated, the model refreshed, and the UI refreshed accordingly.

Complementary question

We would like to render differently tasks that are completed from opened tasks ( for example a different background color).

We provided the TaskStatusCellRenderer to implement such behavior. So be creative and differentiate the task status graphically.

Quality standards

You can use any software methodologies that you feel appropriate for your task as TDD, unit testing, DDD etc.

Authors

License

This project is Apache License 2.0 - see the LICENSE file for details

technical-challenge's People

Contributors

sleroy avatar

Watchers

 avatar  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.