Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
IsraelHikingMap/Site: Israel Hiking Map has maps, route planning, and travel information for Israel. This repository holds the files needed for running the Israel Hiking Map site and apps.

IsraelHikingMap/Site: Israel Hiking Map has maps, route planning, and travel information for Israel. This repository holds the files needed for running the Israel Hiking Map site and apps.

7 hours ago

Intro

This repository holds the main server side module the web and mobile clients interact with, it also hold the web and mobile related code.

Codecov</a>

Site's uptime

Architecture Diagram

!Architecture diagram

The diagram above is exported from architecture.drawio - edit that file and export a new png when the architecture changes.

Third party services

The following services are used over HTTPS and are not a part of the deployment, so they are not in the diagram above:

Technology stack

The technology stack of this site is based on the following frameworks:

Server Side

Client Side

Architecture and folder structure of the client side

The architecture is based heavily on Angular:
  • application - where all the application code is, topmost folder.
* components - this layer handles the UI calls and bindings along with the relevant css and html files. * directives - folder for all the directives. * models - used to store data types that are common to the entire app. * reducers - used for redux reducers, actions and payloads. * services - this layer holds the lower level data handling.
  • content - used for images and static content.
  • environments - used for angular-cli to define production and dev variables.
  • fonts - icon font generated by npm run generate-icon-font, see AGENTS.md.
  • scss - used for global style files
  • translations - all relevant data related to i18n.

Architecture and folder stucture of the server side

The architecture is based on layers:
  • API - the client entry point and main business logic module
* Contollers - the top-most layer to catch all the requests * Services - responsible for orchestrating executors * Converters - converters logic between types of geo structures * Executers - basic logical building blocks
  • Web - the entry point of the app and where the client side code gets built
  • DataAccessInterfaces - a slim layer to decouple business logic from data access
  • DataAccess - database, file system and network request are processed in this layer
  • Common - Mainly for POCOs
  • Tests - where the tests are located, they mirror the BL hierarchy

Setup environment and start a debug session

See the relevant page in our wiki
Chat with me