Skip to content

5. Architecture

ElliotForWater edited this page Feb 3, 2021 · 3 revisions

The EFW Webapp application is build on top of Nextjs framework and follow quite a standard Nextjs/Reactjs application architecture.

Javascript/Typescript

Each file added to pages/ will become a router and therefor a page in it self.
We split our javascript files in:

  • components/
  • hooks/
  • context/
  • helpers/
  • webComponents/

Style

We use Css Module so style stays in the same folder as its component.
styles/ folder include just global style and some special library style that required separate file.

Translation

We use next-translate. In locales/ you can find all the supported languages so far. Each language as scoped translation. So far we divided translation by page and in common.json there are all the translation string that are common to all pages.

EFW API

Where do we get the results? Elliot for Water works in collaboration with Bing (Microsoft).
We get search results from endpoint they share with us.
We then, built our own API, with .Net Core3, on top of that, and we serve our Nextjs application with some Endpoint.
Please find out API documentation here [to insert].

For the moment we decided to not open source our API because there are some sensitive data that we don't know yet how to handle it.
We would like to reach a point where the EFW API project is open source too.
We are working on it.

We described more in details all the technology we use in the Tech Stack section of this Wiki.