LEADING SYSTEM OF SUSTAINABILITY REPORTING
Normative was designed to simplify sustainability reporting with automated calculations which will ensure a smooth transition towards the Sustainable Development Goals (SDGs).

scroll
PROJECT DESCRIPTION
Having in mind a faster transition towards a sustainable society, Normative
created a special tool to measure the company’s sustainability index.
It is the very first software capable of assessing a company’s social and
environmental sustainability. Using artificial intelligence combined with the
world’s largest online database, Normative makes the required calculations. As
a result, a user gets advanced visual analytics, detailed reports, and gets
step-by-step recommendations to achieve sustainable development.

OUR CONTRIBUTION
By the time we started working with Normative, it was a fully functioning
business. The team was looking for a robust solution to automate processes.
Previously the Normative team worked with freelancers which could not satisfy
the project requirements, like the scope of tasks and complexity.
That is why Normative was looking for an outsourcing software development
company to become a reliable partner and work together on their project. Our
cooperation started with the frontend, precisely with some refactoring and
fixing of the existing components.
What was the Scope of our Work?
The initial phase of our cooperation was to provide a secure source code review. Since it was an existing software solution, it was essential to be sure that the source code is bug-free, so the application will work according to the plan.
Based on the requirements, we improved the overall user experience and added new features, such as:
Development in Details
- Document Parsing/CSV/XLS ParsingWe used two libraries for quick parsing data on the client-side. Papa Parse - powerful CSV parser for JavaScript allows configuring header row options, specify/auto-detect delimiters, identify character for commented rows, and convert numbers and booleans to their types. The xlsx library was used to parse binary input data to XLS entities — workbooks and worksheets. On the next step, the worksheet gets converted to JSON. Input data is taken from the native FileReader object (onload event is used to emit a parsed workbook).
- Info ChartsWe had to make sure that the app analytics will include complex graphs and benchmarks to provide the visual statistics. We used the Microsoft Power BI service to display data charts. Data (reports, data sources, transaction impacts) gets uploaded to the Power BI from the server app. The client app uses powerbi-client library to perform requests to the Power BI API and renders the charts in the iFrame. We ensured the intuitive and composite visual elements for better understanding and comparison of the sustainability index.
- Document ValidationAll uploaded data should have a format that is specified in JSON-schemas. To validate this data, we used Ajv library. This library is known as the fastest JSON Schema validator and is currently maintained and developed, so it was a perfect choice for this solution.
- LocalizationFor content translation, we used @ngx-translate library. Since translation tokens get stored in JSON files on the client-side, provided by the library TranslateService implements methods for both sync and async translations. Also, there is a useful translate pipe which allows us to translate content directly in the component’s template.
- Authorization SystemAs part of the authorization solution, we used the Auth0 service. It provides a web interface to configure API, database connection, authorization rules, and email templates. The implemented functionality allows users to sign in via email/password credentials, use the passwordless sign in (via email or SMS confirmation) or use OAuth2 flow.
- User ManagementThe requirement for this app was far beyond the scope of a basic user management system. The application does not have a sign-up functionality, so users can be created directly by the app admin or invited to the organization by the organization admin. Each user can be a member of multiple organizations. The user access is managed via application and organization roles.
- Organization ManagementSince the app allows getting an overview of the company’s sustainability index, organization management is an essential feature. So, organizations can be created and managed by the app-admin only. Organizations have different access to application modules. Each organization has its own dataset on the Power BI service, which is based on the actual organization’s data sources and reports.
- Table CreationConvenient reporting process depends on top-level tables. We used ag-grid library for table rendering. It provides a highly configurable solution to get tables with customized elements. It allows creating separate Angular components for header and data cells rendering, implement sorting, filtering, pagination, and rows drag’n’droping. The table’s functionality can be expanded by a custom context menu, sidebars, and rows grouping.
TECHNOLOGIES
We did the configuration of the entire frontend stack using Angular, Typescript,
RxJS while for the back end we use NodeJS. Specifically, such a tech stack allows the Normative
team to easily scale the app later on. Plus, NGXS made it possible to make functionality and
logic more transparent.
- AngularJS
- RxJS
- TypeScript
- NGXS
- Express
- NodeJS
Results
At 2muchcoffee we believe that a successful software product comes out of mutual cooperation
between a client and a web development company. The Normative case only proved that.
While working with the Normative team we paid close attention to the target audience and
business needs of our partner. As a result, we were able to improve the existing solution
and transform it into a robust and responsive sustainability reporting platform. A platform
is fully functional and ready to handle millions of users.
CLIENT’S REVIEW

2muchcoffee provides top-notch development work and expert advice that please end-users needs. The team is transparent about progress, communicative, and committed to deadlines.
Visit the website
Adam Egesa 
CEO & CTO
OTHER PROJECTS
Product Hunt - SaaS Product of the Year
Product Hunt - SaaS Product of the Year
See full case studyCentralize all your apps in one single place.- SaaS
- Web App
- France
Station is a SaaS focused platform for working with web applications (supports 600+ apps). It aims to boost your productivity at the workplace while saving tons of your time. As an app and web development company, we are highly skilled to build complex and user-friendly apps, such as Station. It's a Product Hunt project of the year and Y Combinator alumni.Swedish App Store №1 Fitness App
Swedish App Store №1 Fitness App
See full case studyMaintain a healthy lifestyle with no-time and money.- Fitness
- Mobile App
- Sweden
Our client was looking to motivate people to stay fit regardless of the tight schedule. We provided a full cycle development of the mobile app where users can track taken steps and convert them into real goods. Among the best walking apps, Stepler works as a trigger to take care of your health. Based on App Store ranking, Stepler is a top mobile app in Sweden.