Component Diagrams

The page details out the different application stack of coKreat Portal.

GitHub Repository

Architecture

Each block of the architecture is explained in the document.

Portal code structure

There are two folders coKreat Portal is made up of: app folder => The base folder which can be also called as back-end application of portal, serves as API service layer. It authenticate and validates and then routes the API calls executed from the front-end. The front-end Application folder ( client ) resides under app.

client folder => Portal front-end angular code (modules, components, services). User can perform various action through UI when compiled by browser.

coKreat Portal UI

The client folder includes the source code for the Angular application. This folder includes various components, modules, services, styles, and other assets necessary to build the front end of the application.

Program Module

The program module enables user to perform various action through Sourcing portal. When the Organisation admin logs in to sourcing portal, program module gets loaded in the browser. Program module uses Sourcing, shared, shared Feature, core modules and their components and services. Following actions a sourcing organisation user can perform through UI powered by Program module: - Create project using collections or question set or framework categories. - Manage projects created by his organisation. - Manage users added under his organisation. He can add them as a reviewer or admin on the global level of the organisation. - Download various organisation level reports. - For each project, manage nominations. - For each project, manage contents added by different contributors. - For each project, add reviewers to the project. - Download program level reports.

Contribute Module

Contribute module enables user to perform various action through contribute portal. It provides user UI through which contributing org admins and its users can perform various actions. Contribute module uses Sourcing, shared, shared Feature, core modules and their components and services.

Following actions user can perform through UI powered by Contribute module: - Enrol as a Individual contributor or Contributing Organisation. - See project list created by different souring organisations. - Nominate to any project - See Project list his contributing organisation has nominated to - Add contributors or reviewers to the project - Enables contributor org contributor to contribute various contents to the project.

Sourcing Module

Reusable components to show Collection TOC (chapterList component), to upload contents (contentUploader ), To Create Questions and question sets, Bulk upload and bulk Approval component

Shared Module

The reusable code to show loaders, no result found messages, Help messages etc

Shared Feature Module

The views which are reused on both sourcing and contribute portal such as program list, textbook list, Program filters, program headers, Organization user list

Core Module

Core components to show main headers, Footer, and services like program, content etc

Telemetry Module

Module being used to handle telemetry events

Front-End Libraries

The angular libraries are designed to be used in portal to drive re-usability, maintainability hence reducing the redundant development effort significantly.

The following NPM packages which are listed in package.json and are installed in front-end client folder:

API Layer- Portal API Services

The APP folder which can be also called as back-end application of portal, serves as API service layer. It authenticate and validates and then routes the API calls executed from the front-end.

It leverages a keyCloakHelper file to handle login and logout functionalities while adopting token-based session storage to manage user sessions effectively.

Additionally, the interface integrates multiple API middleware functions to accomplish tasks such as token verification, API whitelisting, and customising request headers as needed.

Following files/folders has the code to carry out routing, API whitelist checking and authorising etc.

Server.js

It is used in web development for the server-side entry point of a Node.js application. It acts as the main starting point of the server, responsible for initializing the server, defining routes, and handling incoming requests from clients.

Routes

It handles all the API routes. which are triggering from the client side.

EnvironmentVariables: Helpers Folder

This file is responsible for storing the env variable that is required in the portal from DevOps.

API Whitelisting: Helpers Folder

Contains all the js files which are used for user authentication and authorization. Contains the API Whitelist js file which Handles whitelisting and role checks of Portal API(s).

It contains the set-up method such as decoraterequestHeader, verifyToken, and isApiwhitelisted which validates whether the API request is valid or not with proper role check and auths token.

ResourceBundles

It contains the resource bundles for internationalization and localization purposes in the application. it is used for translations and provides a seamless way to display the application's user interface in different languages based on user preferences.

Dependent Sunbird BBs

Lots of front-end Libraries and services we are leveraging from the other building blocks.

Sunbird Building Blocks which are being used in coKreat Portal

\

Last updated