The aplication must be used for managing employer tasks and loging work on these tasks.
Windows / C++
## Deliverables
Windows C++ Distributed Client Server Activity Logging Aplication
The aplication must:
- be developed in C++ and use all this programming language facilities: encapsulation, inheritance, polymorphism
- be compiled using DevC++ 4.9 or higher
- have a nice graphical interface
- have an installer
General things:
- administrator username and password are set at instalation time time
- administrator can set the ip address and port where MySQL server is listening
- administrator can: add/delete users, groups
- when an admin is logged in, application has the following menus:
Connectivity - Ip, Port
Users & Groups; - add/modify users; can edit comments field; an user can be member of many groups; a special group all means access to all groups
Administrator Account: modify admin username/password
Help, About, Contact
- users can create/take/assign to an other user/edit/view/close tasks
- user can access only tasks which are visible in their Group; visibility domain of a task is one or more Groups selected by creator from all groups where the creator is at creation time!
- when a user is logged in, application has the following menus:
Connectivity - Ip, Port
Tasks; create/take/assigned/close/search and view tasks; task can be searched by id, name, owner, creator, priority, state
Help, About, Contact
?
Some things about tasks:
- a task cannot be deleted;
- a completed task is Read Only
- states: not assigned, received, work in progress, ready, closed
- all modification of a task (state change, owner changed, etc.) must be loged into log(comment) field
- any user from the visibility domain can add a comment
- in comment field the things cannot be modified, only add opperation is valid
- id is Read Only
- only owner of a task can edit its attributes (priority, state, etc)
Some things about users:
- a user cannot be deleted; it can became inactive
- username and id cannot be modified;
The database has the following strusture (recomanded):
- table connectivity: fields: ip (char 20), port (char 5)
- users: id (int autoincrement), username (char 12), name (char 20), lastname (char 20), groups (blob); status (int 1); comments (blob)
status can be active/inactive; comments - few comments about the user
- task: id (int autoincrement), name(char 50), description (blob), priority (int 2), state (char 10), comments (blob), logs (blob), creator_id (int 10), owner_id (int 10)
description - the task description; logs - the field where task administration stuff is keept; comments - the field where user comments are kept
example of log:
02/19/2009 3:54 pm: Created by jamesA with following properites: name: Test for S1; priority: 3; visibility - tehnical, management;
02/19/2009 3:56 pm: Assigned by jamesA to johnB
02/20/2009 1:22 pm: State was changed from 'not assigned' to 'work in progress' by johnB
etc....
example of comments:
02/19/2009 3:55 pm
I will assigne this task to John Brandon as I talk with Alex Dountal
02/20/2009 1:22 pm
I'm starting work for this task
02/20/2009 3:22 pm
I just reproduce the case.........
?
The application must use encription; data stored into the database must be encripted!
The application must use ONLY open source stuff.