So we are starting up with a new portal for easier access between me and my clients. I want to do this in a controlled fashion rather then email/twitter/im etc.
The purpose of this application is going to be :
Client
- Signup and Pay
- Submit Work details and related milestones
- Collaborate with Staff
- Request for Proposals
- View Proposals and approve it.
- View Invoices and Pay for it
- Update Project specific Deliverables
Staff
- Collaborate on client’s work
- Submit Proposals
- See and manage their priorities
- Update progress on milestones and work items
Admin
- Client Admin
- Client Assignments to Managers
- Invoicing and Payments
- Proposals and their status Reminders
- Client History
- Client Notes
- Case Management
Ok I know for some of you this might be boring details. For those who are still here : I could have used BaseCamp + Freshbooks + Proposable + whatever utility Web 2.0 companies. However I don’t want to go that route, for simple reason is I would have to customize a lot based on my business workflow. To give you an example, our Client’s can hire employees based on different models, in order to ensure their effectiveness we are going to give our clients access to our staff’s actual screenshots something like odesk. Long story short : We want to do customizable portal from start. Since we are a Microsoft Shop, we couldn’t adopt open source / PHP scripts.
So brand new project, one question comes up in true developer’s mind is what architecture/technologies to use etc :
- .NET 4.0
- ASP.NET MVC 2.0
- Entity Framework (started to learn nHibernate, but I don’t want to wait on this. Will try to keep architecture independent of Persistance Libraries).
- jQuery UI
- Blueprint Grid Framework
- .LessCSS
- Log4Net for Logging
- Lucene for Search and Retrieval
- Microsoft AJAX Framework and DataAnnotations classes.
- SQL Server 2008
- Reporting Services for SQL Server 2008 (for Client Reporting)
- Silverlight 4 to provide Whiteboarding and share Annotations between Client and Staff
- Share Models between Silverlight, MVC and WCF layers (I may have to expose my logic at some point to other clients for eg : Ticket System etc)
In my next post I will give you rough idea of my architecture. Your feedback is vital as I am willing to learn everything I can :)