From 16f8764219ebf1d700f114a7fdf641c2368065ac Mon Sep 17 00:00:00 2001
From: FORESTIER Fabien <fabien.forestier@soprasteria.com>
Date: Thu, 23 Jan 2020 16:01:42 +0100
Subject: [PATCH] [WIP] first draw of the skeleton of the webapp's doc

---
 docs/assets/web-app-project-structure.PNG | Bin 0 -> 14756 bytes
 docs/components/custom-apps/web-app.md    | 164 ++++++++++++++++++----
 2 files changed, 136 insertions(+), 28 deletions(-)
 create mode 100644 docs/assets/web-app-project-structure.PNG

diff --git a/docs/assets/web-app-project-structure.PNG b/docs/assets/web-app-project-structure.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..c21613e3e4289944568515c72428b443a52d9dcf
GIT binary patch
literal 14756
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
N22WQ%mvv4FO#miHQfL4G

literal 0
HcmV?d00001

diff --git a/docs/components/custom-apps/web-app.md b/docs/components/custom-apps/web-app.md
index a226ecb..fd93289 100644
--- a/docs/components/custom-apps/web-app.md
+++ b/docs/components/custom-apps/web-app.md
@@ -1,27 +1,147 @@
-## Lyon Portal Open Data
+# Web app
 
 ## Files & Folders structure
-Organize a folders and files structure inside a project is never an easy task, and it exists many ways to do so.   
+
+Organize a folders and files structure inside a project is never an easy task, and it exists many ways to do so.
 We think that at the beginning we should just not overthink about it, choose one way to do it, keep to it, until a natural re-organization will happen if needed.   
 Here is our `/src` folder structure:
 
-![folers structure](../../assets/folders.png)
-
-* `src/app`: where the Angular code is located. With time we organized this part in different modules taking care on one main functionnality each. Inside one module each component has its own folder with one `.ts`, one `.scss` and one `html` file.   
-* `/src/assets`: contains all the images, favicon, svg, fonts, Mapbox style files.
-* `src/environments`:
-
+![folers structure](../../assets/web-app-project-structure.png)
+
+* `src/app/`: where the Angular code is located. With time we organized this part in different modules each taking care of one main functionnality. Here is the list of the modules:
+  * `core/`:   
+  * `dataset-details/`:   
+  * `datasets/`:   
+  * `editorialisation/`:   
+  * `elasticsearch/`:   
+  * `map/`:   
+  * `shared/`:   
+  * `user/`:  
+* `src/assets/`: contains all the images, favicon, svg, fonts, dynamic config file...
+* `src/environments/`: contains files with static configuraton.
+* `src/i18n/`:
+* `src/scss/`:  
+* `src/app-routing.module.ts`:  
+* `src/app.component(.ts, .html, .scss)`:  
+* `src/app.module.ts`:  
+* `src/routes.ts`:  
+
+Each module is organized in the following way: (not all the subfolders are required)
+
+* `<module-name>.module.ts`:
+* `<module-name>-routing.module.ts`:
+* `components/`:
+* `directives/`:
+* `guards/`:
+* `handlers/`:
+* `interceptors/`:
+* `models/`:
+* `pipes/`:
+* `resolvers/`:
+* `services/`:
+* `validators/`:
+
+Inside one module each component has its own folder with one `.ts`, one `.scss` and one `html` file.
 
 ## CSS integration with Bulma
-All the styling work has been done with [Bulma](https://bulma.io/), a free and open source CSS framework based on Flexbox, has been used.  
+
+All the styling work has been done with [Bulma](https://bulma.io/), a free and open source CSS framework based on Flexbox.  
 It is highlighy customizable and easy to integrate in a project.
 
 To do so, a `variables.scss` file that contains our project variables, overrides the Bulma variables (color, padding, anything you want). Then Bulma is imported and added to our main `style.scss`. That's it, our style incorporate a personalized Bulma .
 
+## Features by pages
+
+### Home
+
+#### Explore
+
+#### News
+
+#### All news
+
+### Side menu
+
+#### Draft button
+
+#### App version number
+
+#### FR and EN buttons
+
+### Feedback
+
+### Static pages
+
+### Partners
+
+### Reuses
+
+### Draft page
+
+### Contact
+
+### Last changes
+
+### Download the catalogue
+
+### Credits
+
+### Sign In & Sign Up
+
+### User profil
+
+### User data
+
+### Research
+
+#### Filters
+
+#### Tabs
+
+#### Pagination
+
+#### Sort
+
+#### Suggestion
+
+#### Dataset result
+
+### Datset details (Data tab)
+
+#### Research in the data
+
+#### Properties display toggle
+
+#### Data table (sort properties & complex properties & hostory of the click elements)
+
+#### Map
+
+* plan vecto & satellite
+* research by address
+* geoloc
+* copy map
+* interactions
+* detail of a data on map feature click
+
+#### Fullscreen
+
+#### Toggle Map/data
+
+### Datset details (Info tab)
+
+#### Parent and children datasets
+
+#### License
+
+#### Contact us
+
+
 
 ## Research features
+
 This core feature is based on [Elasticsearch](https://www.elastic.co/fr/) (ES). Almost all the  information in the portal (including datasets, articles, geographical data) is indexed in ES. This allows lot's of possibilities with the powerful features of this tool.  
 Here are the features existing on the portal:
+
 * *research*: thanks to ES great indexation, to go through millions of documents is super fast (millions because we are not only looking inside the metadata, but also inside the data)
 * *autocompletion*: using the score based on some criteria, we provides an autocompletion feature that helps to give a context for some research keywords.
 * *suggestion*: if a research didn't give good or no results (for example because of a typo), a word with more results will be suggested.
@@ -29,36 +149,24 @@ Here are the features existing on the portal:
 Of course there is a plenty of room for improvements for these features (and for new ones). ES is very powerful but also very complex to master. It's in a constant improvement.
 
 ## Map features
+
 For each geographical dataset it's possible to display the data on a map. Here is what have been done to make this happen.  
 
-#### Mapbox GL JS
+### Mapbox GL JS
+
 On the client side, the library [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) is used. This is a very interesting tool improving quickly. The only drawback using it with Angular is that we cannot always use its last version. Indeed as we are using Typescript, we need to wait until the @types are updated.
 
-#### Styling
+### Styling
+
 Mapbox use the [Mapbox style specification](https://docs.mapbox.com/mapbox-gl-js/style-spec/) to define the visual appearance of a map.
 In our project we have created different styles depending on how we want to display the map. For example when we display the aerial layer, we don't necessary want the names of, say the roads and the river, to have the same color than when we display the vectorial layer.  
 So when we change these layers, we load the appropriate style.
 
-#### How the data is fetched ?
+### How is the data fetched ?
+
 Initially we were using Web Feature Service (WFS) and Web Map Service protocols to get the data (geojson or images). But for WFS we realized that when our needs became more complex and precise, this could sometimes be not so easy (filters are not the most funny thing to do).  
 So we used...Elasticsearch. It is super fast and even have geographical research. We fetch the data from ES, format it into a `.geojson` and voilà ! This will also allow us in the future to have more advanced features on the map (like filters).
 
 ## API & Downloads feature
 
-
-
 ## CI/CD
-
-
-## Credits
-
-## Licence
-
-
-### TODO
-
-bannière accés restreint
-drafts
-MVT+WMS
-listing of data accesses ?
-button for license ?
-- 
GitLab