Application should allow creation and management of tasks. Application should consist from 2 parts:
- Administration module
- User module
Domain entities of the application are:
- User - fields’ definition is up to implementer
- Project - fields’ definition is up to implementer
- Task - fields’ definition is up to implementer
Application should allow two type of users:
-
Administrator - Is allowed to:
- Create Users
- Create Projects
- Create Tasks per Project, each Task can be assigned only to 1 Project
- Assign Tasks to Users, each Task can be assigned only to 1 User
-
Regular user - Is allowed to:
- See Tasks assigned to him (per Project)
- Edit Task's fields (status, description, etc ...), reassign Tasks to other NOT administrator Users
Implementation details
- Project should be implemented as web application
- Whatever web applications frameworks can be used (JSP, JSF, Struts, Wicket, Spring MVC, etc ...)
- Use of ORM (Object Relational Mapping) for database related activities is highly recommended (Hibernate, iBatis, etc... )
- Use of IOC (Inversion Of Control) containers for application initial startup and DI (Dependency Injection) is highly recommended (Spring, Google Guice, etc ...)
- Use of TDD (Test Driven Development) practices is highly recommended (Junit, etc ...)
- Please use best coding practices you are able (formatting, comments, etc ...)