NukeOSS Documentations - NukeOSS/nukeoss GitHub Wiki
NukeOSS - Documentation
The Document outlines the current implementation of the project making it easy for the new developers to learn the current design and flow of the project.
Introduction
The project is based on Angular and Firebase.
Angular is mainly used to divide the UI components and make them flexible to update and as reusable as possible. Based on the Angular framework all the components of the UI will be separate component.
Firebase is mostly used for the backend and database handling task. Since firebase provides lots of functionality like firebase functions and cloud firestore which are mainly in this project.
Development of all the components and functionality follows below architecture in the project, This architecture leads to create of component or functionality end to end without any dependency with other components thus making it very flexible to work on.
Based on the above design the project is divided into components and all the components must follow the above flow.
The Application contains multiple components and based on the proposed concept the components are categorized below:
Heading Component
This component is mainly used to handle all the menu operations. Written using bootstrap 4.0
npm Used:
- Router -> That routes through different components in body of the tool.
Component Location:
/nukeoss-ui/src/header/
Login Component
This Component is used to keep track of user login information. Written over the angular firebaseui package. The package contains pre-build firebase authentication ui that deals with all the user authentication process automatically.
npm Used:
- Router
- ngx-auth-firebaseui -> That renders the firebase authentication UI.
- ngx-cookie-service -> That handle the cookies services and stores the cookies information for temporary use.
Custom Interface Used:
- UserService
Component Location:
/nukeoss-ui/src/body/login/
Create New Session Component
This Component is used to create new scrum session in the Database. Based on the general design this component send the http request to the backend service createNewSession and based on that the create New Session backend service performs the operation in cloud firestore.
npm Used:
- Router
- Firebase Functions
Custom Interface Used:
Component Location:
/nukeoss-ui/src/body/ScrumBoardMaster/
ScrumBoardMaster Component
This Component is used as the flow for ScrumMaster followed from the CreateNewSession Component. This Component asynchronously captures snapshot for the changes in database (cloud firestore). And also triggers httpsCallable request to sendTopic API in Firebase functions.
npm Used:
- Router
- Firebase Functions
Custom Interface Used:
SessionInterface. --> Used to get the Collection of data from the cloud firestore.
Component Location:
/nukeoss-ui/src/body/ScrumBoardMaster/
ScrumBoardParticipant Component
This Component is used as the flow for ScrumParticipant followed from the JoinSession Component. This Component asynchronously captures snapshot for the changes in database (cloud firestore). And also triggers httpsCallable request to sendValue from it's child component to API in Firebase functions.
npm Used:
- Router
- Firebase Functions
Custom Interface Used:
SessionInterface. --> Used to get the Collection of data from the cloud firestore.
Component Location:
/nukeoss-ui/src/body/ScrumBoardParticipant/
Further If Any component is added similar design flow must be considered to keep the application design more elegant and simple.