The following is a very high level overview of the functionality in the project management system. This list is likely to change based on user input and feedback, as well as the natural evolution process as the application is built and used. Any major changes to what is outlined here will be written up in a separate post with the reasons for the change.
Users
Users obviously need some way to access the system to view their projects and accompanying information. There are a number of ways this could be handled, and will be discussed in a future post.
Accounts
An account is a way of grouping users together. An account can be for a company, a group of users, a charity or any collection of users with a common interest. Then there are 2 types of accounts, company and client accounts, but they’re interchangeable, based on the current context within the application (you can even be both at the same time)
Projects
This is the whole purpose of a project management system, to manage projects. Each project has a company and a client, the company is the account doing the project, and the client is the account the project is being done for. These can both be the same account if it’s an internal project. A project is simple a collection of related items, including the ones outlined below. You can specify who has access to which projects instead of everyone in that project having access to every project (default).
Communication
Communication is the key to the success of any project. In most cases, this will take place via email, which means that not everyone is on the same page in terms of what’s going on. It also means there are numerous simultaneous ‘threads’ of communication, which are not easily searchable as they’re distributed. By using the PMS for all communication related to the project, it’s in a single location, making it easily searchable, and everyone knows what’s going on. For the times you need to communicate internally, you can send internal messages which the client won’t see.
Task management
It is important to know what needs to be done and by whom. Tasks and milestones help you to achieve this. Tasks tell you what needs to be done, and can optionally be assigned to a single user or group of users and milestones are dates by which point a set action needs to be done or something needs to be achieved by. It would also be possible to set internal milestones, which only the company sees. This is useful if the client only sets a final deadline, but you want to have internal deadlines to ensure the project executes on time.
File management
Most projects involve some sort of (electronic) documents. These can be office documents, images, archives or any other type (apart from executables or scripts). This will act as a central repository for all the documents. As well as just storing all the documents, it will also version them, meaning when you upload the same document again with some changes, instead of overwriting the file, it will keep both, but the new upload becomes the master copy, with the old being kept in case you need to revert back/see changes.
Time tracking
This is useful in projects which are billed hourly and fixed price projects. With billed hourly projects, you need an accurate breakdown of how much time was spent where, and with fixed price projects, you want to keep the total amount of hours down as much as possible, so with this you can see where you can improve efficiency. How this will be implemented is yet undecided, but it needs to be as streamlined as possible to encourage use.
Dashboard
This is the landing page in the application and it shows a summary of everything that is going on. It will be different for each user, based on the projects they’re part of. It will also be possible to focus the dashboard on a single project as well as all the users projects.