Skip to content

Developer Documentation

This is the documentation for developer used to maintain this software.

Tech Stack

Frontend

Core Frontend Technologies

ReactJS

React documentation
React is a UI library in JavaScript that utilizes the power of Client-Side Rendering (CSR) for Single Page Application (SPA). It makes development easier by using the concept of component modularisation.

NextJS

Nextjs documentation
Nextjs is a library on top of React that a lot of extra features for React. However, it may have some difficulty when it comes to server-side rendering. Hence, will be under consideration.

Component Libraries

Material-UI

Material-UI documentation
Material-UI is a component library for React which provides a large number of pre-made components styled in accordance with the material design standard. This allows for rapid development as you don't have to focus on design considerations as much.

Material Kit React

Material Kit React documentation
Material Kit React is built on top of Material UI and provides extra theming for components. This will further accelerate development and provide a consistent look and feel to the design.

Frontend + Backend Integration - Feathers-Redux

Redux documentation
Redux is a state management library for React that handles high-level state management that is separate from the structure

Feathers-redux documentation
IndEAA specific feathers-redux information
Feathers-redux is a library that maps the Feathers API to Redux reducers to abstract base HTTP calls to function calls in order to sync the state of the frontend, and the data stored in the backend.

Backend - Feathersjs/Express

Express documentation
Express is a library on Nodejs (a platform to run JavaScript outside of the browser) to easily create HTTP servers.

Feathersjs documentation
Feathersjs is a wrapper for application in Express, essentially to make development easier by loosely enforcing developers on creating RESTFul API (following uniformity of HTTP methods). It makes development easier by making route to database call uniform.

Database - Mongoose/MongoDB

MongoDB documentation
MongoDB will be used for its loosely defined and flexible data structure.

Mongoose documentation
Mongoose will be used to enforce some schema to control the shape of the data.

Deployment - Docker

Docker documentation
Docker will be used to orchestrate the frontend and the backend into two main containers as well as to host a temporary database for development.

https://stackoverflow.com/questions/51011552/mongodb-on-with-docker-failed-to-connect-to-server-localhost27017-on-first-c