The goal of the project is to design and implement a simple project management system that supports agile software development. The project includes a Java EE application which manages the persistent data storage, contains the business logic and communicates with the two clients: a web client and an iOS client; and an iOS application.
The web based user interface provides full functionality to create, modify, delete, display and connect the building blocks of agile software development: tasks, bugs, user stories and iterations. A project can include multiple iterations that contain user stories which have tasks and bugs associated to them. The web client implements two different views with the goal of managing these elements: a backlog view where the iterations are composed and a board view which is very useful during development because it displays the task and bugs of the current iteration based on their state, whether they are new or active meaning currently under development or closed referring to being finished.
The application supports the management of multiple projects per user where the creator of the project can grant access for users or revoke the permission to manage the given project. There is no limitation how many project a user can create and become a member in.
In contrast to the web client, the iOS client aims at informing the user about the details of the projects he/she is a member in, only displaying the information rather that allowing modifications. The user interface is designed in a way that it provides users with an overview of the progress of iterations and user stories, and has the feature to display the tasks and bugs assigned to the current user.
The system also includes registration and login processes implementing two user roles: a user and an admin. The former can only manage the projects associated to the specific user while the latter has the authority to access and execute modifications on each existing project in the system and can manage the users as well.