Microcity - A client portal with SLA on screen
Web portal, admin panel and iOS and Android apps for IT outsourcing clients to follow indicators, documents and tickets.
Showing the service already being delivered
Microcity provides IT asset outsourcing to companies. In that model the contract is a service level promise, and the client relationship improves or deteriorates depending on whether they can see that promise being kept.
The Client Portal was built to take that information out of a monthly email report and put it where the client can reach it whenever they want, in the browser or on the phone.
The starting point: eight objections
This project began in an unusual way, and it is worth telling. Before signing, the client raised eight formal technical objections to hybrid development, among them metrics collection, webhook usage, web experience, keeping up with platform updates and the single-threaded nature of the base language.
Each was answered technically before the contract. That is a good client signal, not a bad one: whoever asks hard technical questions at the start will demand technical results at the end, and the architecture choice ends up on record instead of implicit.
Four fronts, one product
API. A Node.js service covering users, sign-in, documents, favourites, notifications, banners, videos, contact channel, document report generation and the chart data.
Web portal. Sign-in, profile, notifications in the top bar, indicator dashboard, documents, institutional area and Contact Us, with a layout that responds to any screen size.
iOS and Android apps. The same information in hand, with push notifications, published on both stores.
Admin panel. Client and user management, per-company document management, banner and video management.
The three decisions that hold the portal up
Signing in without creating another password. Access was integrated with Microcity's corporate directory through single sign-on. A client portal that demands a new account tends to die of disuse; here the user signs in with the credential they already have.
The indicator comes from the source, not from a spreadsheet. Service level charts are fed by direct integration with Microcity's data warehouse, through database views. That means the number the client sees is the same number the operation sees, with no manual step in between that could diverge.
Documents are a repository, not an attachment. The document area is multi-company, with folder creation, upload, download, share links, favourites and a history of the last files viewed per user, with files kept in cloud object storage.
What the operation taught
Three episodes from this project are worth more than any feature list, because they are the kind of thing that decides a schedule.
The VPN that would not connect. Access to the client environment was attempted across every operating system, without success, and became an open dependency. Access is a requirement, and it has to be planned with the same weight as a feature.
The dependency that arrives after the deadline. The production data warehouse views, needed for the service level charts, were released after the date set for final delivery. You cannot build the chart without the data, and that kind of dependency has to be visible in the schedule from the start.
The store is a phase too. The app was rejected on its first App Store submission, and there was still a connection security fix that broke only on Android, plus two rounds of push notification fixes after publication. Publishing is not the end of the project, it is another phase of it.
Stack and practices
- React Native with Expo for iOS and Android, with push notifications and icon badge control. React with Redux on the web portal and admin panel. A data visualization library for the indicator dashboard charts. REST API in Node.js, deployed on both Linux and Windows environments. Cloud object storage for the document repository and profile photos. Relational database, integrated with the client data warehouse through views. Single sign-on with the corporate directory. * Builds distributed through a testing platform for client validation before each release.
Production server specification was also delivered, sized to run inside the client's own infrastructure.
Can your client see the service you deliver?
A service level agreement that only shows up in a monthly report is a promise that is hard to verify. When the indicator becomes visible, the conversation with the client changes tone. X-Apps builds that portal wired to your data source, with sign-in through the credential the company already uses.