Imagine a mid-tier firm producing several products for a market. The firm has several departments: R&D, purchasing, marketing, application, sales and so on.
Each department has several distinct purposes in the firm and has some degree of relationship with each other.
I want to design an application, say a web-based app, for the employees, each department having their own control panels, and, in a department, each individual with different level of responsibilities even having their unique level of control in the control panel, to monitor their project progress, carry out assignments and give their feedback on each event, occasion, state, change..
One department, and its personnel, can send some feedback to another, keep records of their daily work records, and share some data with others, but also has to keep private some part of their own data.
Each user has different level of control/authority on the app. For the simplicity, and with limited resources (time and developer), I am aiming to have not-so-complicated object-based application.
How can I design this application based on OOP?
I am planning to have some general/primitive/parent objects/classes like: Assignment, Product, RawMaterial, Person, Firm, and some sub-classes of them, and thinking of designing their relationship with each other.
I am not asking the technology I should use or specific implementation of a method.
How can I start designing the objects, their properties, relationship, methods based on the need described above?
Is there some resources I can benefit from?
NOTE: I asked this question first on Stack Overflow.