Sign inSign up

israelhikingmap/website

By israelhikingmap

•Updated over 2 years ago

The image for the website

Image
Web servers
Content management system
0

10K+

israelhikingmap/website repository overview

⁠Intro

This repository holds all the files that the site needs in order to run.

AppVeyor AppVeyor tests Codecov

⁠Contents

⁠Technology stack

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

⁠Architecture and folder stucture of UI

The architecture is based heavily on Angular:

  • application - where all the 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 hold the lower level data handling.
      • layers - where the layers logic is - POI, route, wiki, nakeb, relevant services, etc...
  • content - used for images and static content.
  • environments - used for angular-cli to define production and dev variables.
  • fonts - icomoon⁠ generated font for icons instead of images.
  • scss - used for global style files
  • translations - all relevant data related to i18n

⁠Architecture of Server

The architecture is based on layers

  • Contollers - the topmost layer to catch all the requests
  • Services - responsible for orchastrating executors
  • Converters - converters logic between types of geo structures
  • Executers - basic logical building blocks
  • 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

⁠Setting Up the Project for site Development (To setup iOS and Android follow the cordova guide)

In order to be able to build this site you'll need some tools:

  • Install Docker⁠
  • Install .Net core SDK 5.0 ⁠
  • Install node.js⁠ (14.17+).
  • Run from command line dotnet restore and after that dotnet build
  • Go to IsraelHiking.Web and run from command line:
    • npm install to install all npm packages for the client side code
    • npm run build to generate the Angular UI client. It should create wwwroot folder on a successful run
  • Run docker compose up graphhopper - it should fail for the first time
  • Run gh-update.ps1 (set chmod +x if needed) to generate the graphhopper routing data
  • Run docker compose up to load the rest of the sercives
  • Run dotnet run --project IsraelHiking.Web --launch_profile IsraelHiking.Web
  • If you want to update the translations or upload images from your debug environment, you'll need to add the following secrets to IsraelHiking.Web. Otherwise, skip this step.
    2017-10-22 10_47_32-
    In the secrets.json at the end there should be these fields.
    {
      "wikiMediaUserName": "your wikimedia user",
      "wikiMediaPassword": "your wikimedia password"
      "zanataUserName": "your zanata user",
      "zanataApiKey": "your zanata api key",
      "imgurClientId": "your imgur clinet ID"
    }
    

⁠Starting a debug session

See the relevant page in our wiki⁠

Tag summary

Content type

Image

Digest

sha256:a414ea293…

Size

127.9 MB

Last updated

over 2 years ago

docker pull israelhikingmap/website:9.20.9