├── .gitignore ├── .gitmodules ├── .local └── build_deb.sh ├── .yarnrc ├── LICENSE ├── README.md ├── app └── config.json ├── build.json ├── config.xml ├── dist └── cesium ├── doc ├── PrivacyPolicy.md ├── build_android.md ├── build_web.md ├── build_web_extension.md ├── changelog │ └── changelog.md ├── development_guide.md ├── feed │ ├── draft │ │ └── feed-en.json │ └── history │ │ ├── 2020-12-18 │ │ ├── feed-fr.json │ │ └── home_search-fr.png │ │ └── 2021-06-21 │ │ └── feed-fr.json ├── fr │ └── img │ │ ├── 04e64b769cbd45b9d275cd5f81002a399a1a7684.png │ │ ├── 3b8fa2f5c0465b13ae5ce74d49702e0c9f027866.png │ │ ├── ceb75301172038e75f5c43b328dd7febd7bedc7e.png │ │ └── fef4f4dfe7c2168cb27c9e7f5e399fd547ce774a.png ├── installation.md └── mozilla │ ├── README.md │ ├── describe_extenstion-en.html │ └── describe_extenstion-fr.html ├── gulpfile.js ├── install.sh ├── ionic.config.json ├── jsconfig.json ├── package.json ├── resources ├── android │ ├── build │ │ ├── app │ │ │ ├── build-extras.gradle │ │ │ └── libs │ │ │ │ └── libsodium-jni-release.aar │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ └── tools │ │ │ └── android-accept-licenses.sh │ ├── icon │ │ ├── drawable-hdpi-icon.png │ │ ├── drawable-ldpi-icon.png │ │ ├── drawable-mdpi-icon.png │ │ ├── drawable-xhdpi-icon.png │ │ ├── drawable-xxhdpi-icon.png │ │ └── drawable-xxxhdpi-icon.png │ ├── playstore │ │ ├── gchange-annonce_bureau.png │ │ ├── gchange-capture-accueil.png │ │ ├── gchange-capture-liste_annonces.png │ │ ├── gchange-capture-mes_annonces.png │ │ ├── gchange-capture-nouvelle_annonce.png │ │ ├── gchange_1024x500_fr.png │ │ └── gchange_1024x500_fr.xcf │ └── splash │ │ ├── drawable-land-hdpi-screen.png │ │ ├── drawable-land-ldpi-screen.png │ │ ├── drawable-land-mdpi-screen.png │ │ ├── drawable-land-xhdpi-screen.png │ │ ├── drawable-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png ├── icon.png ├── ios │ ├── icon │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ ├── Icon-App-83.5x83.5@2x.png │ │ └── ItunesArtwork@2x.png │ └── splash │ │ ├── Default-2436h.png │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-2436h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape@~ipadpro.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait@~ipadpro.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ ├── Default@2x~universal~anyany.png │ │ └── Default~iphone.png ├── logos │ └── logo-512px.png ├── maps │ ├── be.svg │ ├── es.svg │ ├── fr.geojson │ ├── gb.svg │ ├── pt.svg │ ├── test_rect_with_hole.svg │ └── us.svg ├── splash.png └── web-ext │ ├── background.js │ └── manifest.json ├── scripts ├── build-android.sh ├── build-desktop.sh ├── check-reproducible-build.sh ├── docker-build.sh ├── docker-start.sh ├── emulate-android.sh ├── env-android.sh ├── env-clean.sh ├── env-global.sh ├── hooks │ ├── README.md │ ├── after_prepare.js │ ├── before_compile.js │ └── before_prepare.js ├── install-android-sdk.sh ├── ionic-update.sh ├── node │ ├── jshint-utils.js │ ├── jshint.js │ └── postinstall.js ├── release-android-sign.sh ├── release-android-sources.sh ├── release-android.sh ├── release-desktop.sh ├── release-sign-extension.sh ├── release-to-github.sh ├── release.sh └── run-android.sh ├── scss ├── cesium.app.scss ├── converse.app.scss ├── icons │ ├── _cesiumicons-font.scss │ ├── _cesiumicons-icons.scss │ ├── _cesiumicons-variables.scss │ └── cesiumicons.scss ├── ionic.app.scss ├── leaflet.app.scss ├── leaflet │ └── images │ │ ├── layers-2x.png │ │ ├── layers.png │ │ ├── loader.gif │ │ ├── marker-icon-2x.png │ │ ├── marker-icon.png │ │ ├── marker-shadow.png │ │ ├── markers-matte.png │ │ ├── markers-matte@2x.png │ │ ├── markers-plain.png │ │ ├── markers-shadow.png │ │ ├── markers-shadow@2x.png │ │ ├── markers-soft.png │ │ ├── markers-soft@2x.png │ │ └── search-icon.png └── variables.app.scss ├── typings └── cordova-typings.d.ts └── www ├── .well-known └── assetlinks.json ├── css ├── style-no-device.css └── style.css ├── fonts ├── cesiumicons.eot ├── cesiumicons.svg ├── cesiumicons.ttf ├── cesiumicons.woff ├── icomoon.eot ├── icomoon.svg ├── icomoon.ttf └── icomoon.woff ├── i18n ├── locale-en-GB.json ├── locale-en.json ├── locale-eo-EO.json ├── locale-es-ES.json └── locale-fr-FR.json ├── img ├── arrow.svg ├── background.jpg ├── bg │ ├── autumn-1.jpg │ ├── autumn-2.jpg │ ├── autumn-3.jpg │ ├── autumn-4.jpg │ ├── autumn-5.jpg │ ├── autumn-6.jpg │ ├── autumn-7.jpg │ ├── service-1.jpg │ ├── service-10.jpg │ ├── service-11.jpg │ ├── service-12.jpg │ ├── service-2.jpg │ ├── service-3.jpg │ ├── service-4.jpg │ ├── service-5.jpg │ ├── service-6.jpg │ ├── service-7.jpg │ ├── service-8.jpg │ ├── service-9.jpg │ ├── spring-1.jpg │ ├── spring-2.jpg │ ├── spring-3.jpg │ ├── spring-4.jpg │ ├── spring-5.jpg │ ├── spring-6.jpg │ ├── spring-7.jpg │ ├── summer-1.jpg │ ├── summer-10.jpg │ ├── summer-11.jpg │ ├── summer-2.jpg │ ├── summer-3.jpg │ ├── summer-4.jpg │ ├── summer-5.jpg │ ├── summer-6.jpg │ ├── summer-7.jpg │ ├── summer-8.jpg │ ├── summer-9.jpg │ ├── winter-1.jpg │ ├── winter-2.jpg │ ├── winter-3.jpg │ ├── winter-4.jpg │ └── winter-5.jpg ├── bgbl.svg ├── bgtr.svg ├── dark-arrow.svg ├── delivery.svg ├── favicon.ico ├── flag-be.png ├── flag-eo.png ├── flag-es.png ├── flag-fr.png ├── flag-gb.png ├── flag-it.png ├── flag-nl.png ├── flag-us.png ├── header_bg.jpg ├── logo.png ├── logo.small.svg ├── logo.svg ├── logo_128px.png ├── logo_152px.png ├── logo_167px.png ├── logo_180px.png ├── logo_200px.png ├── logo_256px.png ├── logo_32px.png ├── logo_48px.png ├── logo_512px.png ├── logo_64px.png ├── mastodon.svg ├── overlay.png ├── person.png └── user.png ├── index.html ├── js ├── app.js ├── components.js ├── config.js ├── controllers.js ├── controllers │ ├── app-controllers.js │ ├── help-controllers.js │ ├── home-controllers.js │ ├── join-controllers.js │ ├── login-controllers.js │ ├── settings-controllers.js │ ├── wallet-controllers.js │ └── wot-controllers.js ├── directives.js ├── entities │ ├── block.js │ └── peer.js ├── filters.js ├── platform.js ├── plugins.js ├── services.js ├── services │ ├── bma-services.js │ ├── cache-services.js │ ├── crypto-services.js │ ├── currency-services.js │ ├── device-services.js │ ├── http-services.js │ ├── modal-services.js │ ├── plugin-services.js │ ├── settings-services.js │ ├── storage-services.js │ ├── tx-services.js │ ├── utils-services.js │ ├── wallet-services.js │ └── wot-services.js └── vendor │ ├── base58.js │ ├── base64.js │ ├── numeral.eo.js │ └── sha256.min.js ├── manifest.json ├── plugins ├── es │ ├── css │ │ └── style.css │ ├── i18n │ │ ├── locale-en-GB.json │ │ ├── locale-en.json │ │ ├── locale-eo-EO.json │ │ ├── locale-es-ES.json │ │ ├── locale-fr-FR.json │ │ └── locale-nl-NL.json │ ├── js │ │ ├── controllers │ │ │ ├── app-controllers.js │ │ │ ├── common-controllers.js │ │ │ ├── document-controllers.js │ │ │ ├── like-controllers.js │ │ │ ├── message-controllers.js │ │ │ ├── network-controllers.js │ │ │ ├── notification-controllers.js │ │ │ ├── profile-controllers.js │ │ │ ├── registry-controllers.js │ │ │ ├── settings-controllers.js │ │ │ ├── subscription-controllers.js │ │ │ ├── wallet-controllers.js │ │ │ └── wot-controllers.js │ │ ├── entities │ │ │ ├── comment.js │ │ │ ├── notification.js │ │ │ └── peer.js │ │ ├── plugin.js │ │ ├── services.js │ │ └── services │ │ │ ├── blockchain-services.js │ │ │ ├── comment-services.js │ │ │ ├── crypto-services.js │ │ │ ├── document-services.js │ │ │ ├── geo-services.js │ │ │ ├── group-services.js │ │ │ ├── http-services.js │ │ │ ├── like-services.js │ │ │ ├── message-services.js │ │ │ ├── modal-services.js │ │ │ ├── network-services.js │ │ │ ├── notification-services.js │ │ │ ├── profile-services.js │ │ │ ├── registry-services.js │ │ │ ├── settings-services.js │ │ │ ├── social-services.js │ │ │ ├── subscription-services.js │ │ │ └── wallet-services.js │ └── templates │ │ ├── common │ │ ├── dropdown_locations.html │ │ ├── edit_pictures.html │ │ ├── edit_position.html │ │ ├── edit_socials.html │ │ ├── item_comment.html │ │ ├── item_comment_content.html │ │ ├── item_location_search.html │ │ ├── modal_category.html │ │ ├── modal_edit_avatar.html │ │ ├── modal_location.html │ │ ├── popover_distances.html │ │ ├── popover_profile_extend.html │ │ ├── popover_star.html │ │ ├── popup_report_abuse.html │ │ ├── view_comments.html │ │ ├── view_likes.html │ │ └── view_pictures.html │ │ ├── document │ │ ├── item_document.html │ │ ├── item_document_comment.html │ │ ├── item_document_like.html │ │ ├── item_document_page.html │ │ ├── item_document_profile.html │ │ ├── items_documents.html │ │ ├── lookup.html │ │ ├── lookup_form.html │ │ └── lookup_popover_actions.html │ │ ├── group │ │ ├── edit_group.html │ │ ├── item_group.html │ │ ├── items_groups.html │ │ ├── list.html │ │ ├── lookup.html │ │ ├── lookup_form.html │ │ ├── modal_record_type.html │ │ └── view_record.html │ │ ├── home │ │ └── home_extend.html │ │ ├── join │ │ └── modal_join_extend.html │ │ ├── menu_extend.html │ │ ├── message │ │ ├── compose.html │ │ ├── compose_form.html │ │ ├── list.html │ │ ├── lookup_popover_actions.html │ │ ├── modal_compose.html │ │ ├── popover_message.html │ │ ├── view_message.html │ │ └── view_popover_actions.html │ │ ├── network │ │ ├── item_content_peer.html │ │ ├── items_peers.html │ │ ├── lookup_popover_actions.html │ │ ├── modal_network.html │ │ ├── popover_endpoints.html │ │ ├── popover_network.html │ │ ├── popover_peer_info.html │ │ ├── view_es_network.html │ │ └── view_es_peer.html │ │ ├── notification │ │ ├── list_notification.html │ │ ├── popover_actions.html │ │ ├── popover_notification.html │ │ └── view_notifications.html │ │ ├── registry │ │ ├── edit_record.html │ │ ├── item_record.html │ │ ├── lookup.html │ │ ├── lookup_form.html │ │ ├── lookup_form_options.html │ │ ├── lookup_lg.html │ │ ├── lookup_list.html │ │ ├── lookup_list_lg.html │ │ ├── lookup_popover_actions.html │ │ ├── lookup_popover_filters.html │ │ ├── modal_record_type.html │ │ ├── view_popover_actions.html │ │ ├── view_record.html │ │ └── view_wallet_pages.html │ │ ├── settings │ │ └── plugin_settings.html │ │ ├── subscription │ │ ├── edit_subscriptions.html │ │ ├── item_email_subscription.html │ │ └── modal_email.html │ │ ├── user │ │ ├── edit_popover_actions.html │ │ ├── edit_profile.html │ │ └── items_profile.html │ │ ├── wallet │ │ └── view_wallet_extend.html │ │ └── wot │ │ ├── view_identity_extend.html │ │ └── view_popover_actions.html ├── graph │ ├── css │ │ └── style.css │ ├── i18n │ │ ├── locale-en-GB.json │ │ ├── locale-en.json │ │ ├── locale-eo-EO.json │ │ ├── locale-es-ES.json │ │ ├── locale-fr-FR.json │ │ ├── locale-it-IT.json │ │ └── locale-nl-NL.json │ ├── js │ │ ├── controllers │ │ │ ├── common-controllers.js │ │ │ ├── docstats-controllers.js │ │ │ ├── network-controllers.js │ │ │ └── synchro-controllers.js │ │ ├── plugin.js │ │ ├── services.js │ │ └── services │ │ │ ├── color-services.js │ │ │ └── data-services.js │ └── templates │ │ ├── account │ │ ├── graph_balance.html │ │ ├── graph_certifications.html │ │ ├── graph_sum_tx.html │ │ └── view_stats.html │ │ ├── common │ │ ├── graph_range_bar.html │ │ └── popover_range_actions.html │ │ ├── docstats │ │ ├── graph.html │ │ └── view_stats.html │ │ ├── network │ │ ├── view_es_network_extend.html │ │ └── view_es_peer_extend.html │ │ └── synchro │ │ ├── graph.html │ │ └── view_stats.html ├── map │ ├── css │ │ └── style.css │ ├── i18n │ │ ├── locale-en-GB.json │ │ ├── locale-en.json │ │ ├── locale-eo-EO.json │ │ └── locale-fr-FR.json │ ├── js │ │ ├── controllers │ │ │ ├── home-controllers.js │ │ │ ├── shape-controllers.js │ │ │ └── user-controllers.js │ │ ├── plugin.js │ │ ├── services.js │ │ └── services │ │ │ ├── shape-services.js │ │ │ └── utils-services.js │ └── templates │ │ ├── shape │ │ ├── edit_shape.html │ │ └── view_shape.html │ │ └── user │ │ └── edit_profile_extend.html └── market │ ├── css │ └── style.css │ ├── i18n │ ├── locale-en-GB.json │ ├── locale-en.json │ ├── locale-eo-EO.json │ ├── locale-es-ES.json │ ├── locale-fr-FR.json │ └── locale-nl-NL.json │ ├── js │ ├── controllers │ │ ├── app-controllers.js │ │ ├── category-controllers.js │ │ ├── document-controllers.js │ │ ├── gallery-controllers.js │ │ ├── home-controllers.js │ │ ├── join-controllers.js │ │ ├── login-controllers.js │ │ ├── record-controllers.js │ │ ├── search-controllers.js │ │ ├── wallet-controllers.js │ │ └── wot-controllers.js │ ├── plugin.js │ └── services │ │ ├── category-services.js │ │ ├── converse-services.js │ │ ├── modal-services.js │ │ ├── profile-services.js │ │ ├── record-services.js │ │ ├── settings-services.js │ │ ├── tx-services.js │ │ └── wallet-services.js │ └── templates │ ├── category │ ├── card_category_lg.html │ ├── edit_categories.html │ ├── list_categories_lg.html │ ├── popup_edit_category.html │ ├── view_categories.html │ └── view_categories_lg.html │ ├── document │ ├── item_document_comment.html │ ├── item_document_profile.html │ ├── item_document_record.html │ └── list_documents.html │ ├── gallery │ ├── modal_slideshow.html │ └── view_gallery.html │ ├── help │ ├── help.html │ ├── modal_help.html │ └── view_help.html │ ├── home │ └── home_buttons.html │ ├── join │ └── modal_join.html │ ├── login │ ├── modal_event_login.html │ └── modal_login.html │ ├── map │ └── map_country.html │ ├── menu_extend.html │ ├── record │ ├── edit_record.html │ ├── form_record_auction.html │ ├── form_record_crowdfunding.html │ ├── form_record_need.html │ ├── form_record_offer.html │ ├── modal_payment.html │ ├── modal_record_type.html │ ├── popover_unit.html │ ├── view_popover_actions.html │ └── view_record.html │ ├── search │ ├── item_record.html │ ├── list_records.html │ ├── list_records_lg.html │ ├── lookup.html │ ├── lookup_actions_popover.html │ ├── lookup_lg.html │ ├── lookup_options.html │ └── lookup_sort_popover.html │ ├── wallet │ ├── view_wallet_extend.html │ ├── view_wallet_favorites.html │ └── view_wallet_records.html │ └── wot │ ├── view_identity_extend.html │ └── view_identity_records.html └── templates ├── common ├── form_error_messages.html ├── popover_copy.html ├── popover_helptip.html ├── popover_instance_address.html ├── popover_locales.html ├── popover_profile.html ├── popover_share.html └── qrcode.html ├── help ├── help.html ├── modal_help.html └── view_help.html ├── home └── home.html ├── join └── modal_join.html ├── login └── modal_login.html ├── menu.html ├── modal_about.html ├── settings ├── popover_actions.html ├── popup_node.html └── settings.html ├── wallet ├── popover_actions.html ├── popover_unit.html └── view_wallet.html └── wot ├── identity.html ├── lookup.html ├── lookup_form.html ├── lookup_popover_actions.html ├── modal_lookup.html ├── view_identity.html └── view_identity_tx.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Specifies intentionally untracked files to ignore when using Git 2 | # http://git-scm.com/docs/gitignore 3 | 4 | /node_modules/ 5 | /platforms/* 6 | #!/platforms/android 7 | /resources/android/build/local.properties 8 | /resources/android/build/*.keystore 9 | /resources/android/build/release-signing.properties 10 | /plugins/ 11 | .idea/ 12 | .vscode/ 13 | .local/ 14 | .directory 15 | /*.iml 16 | /npm-debug.log 17 | /package-lock.json 18 | /yarn-error.log 19 | /yarn.lock 20 | 21 | /dist/web 22 | /dist/android 23 | 24 | /hooks/uglify-config.json 25 | /hooks/after_prepare/uglify.js 26 | 27 | /www/js/config.js 28 | /www/js/vendor/d3*.js 29 | /www/dist 30 | /www/lib 31 | 32 | # Converse JS files 33 | /www/sounds 34 | /www/locale 35 | 36 | # Generated CSS 37 | /www/css/ionic.app.css 38 | /www/css/ionic.app.min.css 39 | /www/css/leaflet.app.css 40 | /www/css/leaflet.app.min.css 41 | /www/css/converse.app.css 42 | /www/css/converse.app.min.css 43 | /www/img/layers*.png 44 | /www/img/marker*.png 45 | /www/img/loader.gif 46 | /www/img/search-icon.png 47 | /www/img/search-icon-mobile.png 48 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dist/desktop"] 2 | path = dist/desktop 3 | url = git@github.com:duniter-gchange/gchange-client-desktop.git 4 | -------------------------------------------------------------------------------- /.local/build_deb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd ../platforms/desktop 4 | 5 | 6 | VERSION=0.8.3 7 | 8 | EXPECTED_ASSETS="cesium-desktop-v$VERSION-linux-x64.deb" 9 | export EXPECTED_ASSETS 10 | 11 | ./release.sh $VERSION 12 | if [[ $? -ne 0 ]]; then 13 | exit 2 14 | fi 15 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | --install.ignore-engines true 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ğchange 2 | 3 | ğchange is a market place application (web and mobile), compatible with [Duniter crypto-currencies](http://www.duniter.org) like Ğ1. 4 | 5 | ## Install 6 | 7 | - Read the [installation guide](./doc/installation.md); 8 | 9 | ## Contribute 10 | 11 | A [Development Guide](doc/development_guide.md) is available to learn : 12 | - How to install your development environment. 13 | - Development best practices. 14 | 15 | ## Donate 16 | 17 | To help developers with donation, use the [Gchange Ğ1 account](https://demo.cesium.app#/app/wot/AxiQgMT5fKwSD8CB1i2fepj4R5ubBAaEj1VSQiEiy48e/) (public key: `AxiQgMT5fKwSD8CB1i2fepj4R5ubBAaEj1VSQiEiy48e`) 18 | 19 | ## License 20 | 21 | This software is distributed under [GNU AGPL-3.0](https://raw.github.com/duniter/cesium/master/LICENSE). 22 | 23 | Please read also our [privacy policy](./doc/PrivacyPolicy.md). 24 | -------------------------------------------------------------------------------- /build.json: -------------------------------------------------------------------------------- 1 | { 2 | "android": { 3 | }, 4 | "ios": { 5 | "debug": { 6 | "codeSignIdentity": "iPhone Developer", 7 | "developmentTeam": "3TH8P5JJ9J", 8 | "automaticProvisioning": true, 9 | "packageType": "development" 10 | }, 11 | "release": { 12 | "codeSignIdentity": "iPhone Developer", 13 | "developmentTeam": "3TH8P5JJ9J", 14 | "automaticProvisioning": true, 15 | "packageType": "app-store" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /dist/cesium: -------------------------------------------------------------------------------- 1 | /home/blavenie/git/cesium -------------------------------------------------------------------------------- /doc/PrivacyPolicy.md: -------------------------------------------------------------------------------- 1 | # Privacy Policy 2 | 3 | ## Use of camera (Android devices) 4 | 5 | > Privacy Policy document is [a requirement of Google PlayStore](https://support.google.com/googleplay/android-developer/answer/113469#privacy), to enable use if Camera. 6 | 7 | In the application, the user can use camera (photo or gallery) to add pictures on a Ad, or for his own profile (avatar). 8 | This pictures are stored in P2P network (decentralized way). See subproject [gchange-pod](https://github.com/duniter-gchange/gchange-pod) for additionnal informations. 9 | 10 | ## Document storage (all devices) 11 | 12 | > Where my Ads (or profile, comments, etc.) are stored ? 13 | 14 | Gchange use a P2P network (see [gchange-pod](https://github.com/duniter-gchange/gchange-pod/) to store each emitted documents in a decentralized way. 15 | The document owner can delete any emitted document, but *be aware that a node administrator can ignore deletion, and choose to keep this data*. 16 | 17 | So consider that your issued documents are on the permanent web. 18 | -------------------------------------------------------------------------------- /doc/build_web.md: -------------------------------------------------------------------------------- 1 | # Build Gchange as an unhosted web application 2 | 3 | Gchange can be build as a simple web application, portable and runnable anywhere. 4 | 5 | ## Prerequisites 6 | 7 | ### Install the development environment 8 | 9 | Follow all the steps defined in the [Development guide](./development_guide.md). 10 | 11 | After that you should be able to start the application using `npm start`or `yarn run start`, and to test it. 12 | 13 | ## Build the unhosted web application 14 | 15 | 16 | - To create a compressed ZIP artifact, run: 17 | ```bash 18 | cd gchange-client 19 | gulp webBuild --release 20 | ``` 21 | 22 | A ZIP archive will be visible `dist/web/build/gchange-vx.y.z.zip` 23 | 24 | ## Publishing to a web site 25 | 26 | Uncompress the web archive, then open the `ìndex.html` file in your web browser. 27 | -------------------------------------------------------------------------------- /doc/build_web_extension.md: -------------------------------------------------------------------------------- 1 | # Build Gchange as a Web extension 2 | 3 | Gchange can be build as Web extension, for Mozilla Firefox extension (`.xpi`) and Chrome/Chromium (`.crx`). 4 | 5 | ## Prerequisites 6 | 7 | ### Install the development environment 8 | 9 | Follow all the steps defined in the [Development guide](./development_guide.md). 10 | 11 | After that you should be able to start the application using `npm start`or `yarn run start`, and to test it. 12 | 13 | ## Build the web extension 14 | 15 | - To create an uncompressed extension, use : 16 | ```bash 17 | cd gchange 18 | gulp build 19 | gulp webExtCompile --release 20 | ``` 21 | 22 | The uncompressed web extension will be visible `dist/web/ext` 23 | 24 | - To create a portable and compressed ZIP extension : 25 | ```bash 26 | cd gchange 27 | gulp build 28 | gulp webExtBuild --release 29 | ``` 30 | 31 | The web extension is visible at `dist/web/build/gchange-vx.y.z-extension.zip` 32 | 33 | > Remove the option `--release` to skip creation of minified CSS and JS files (and source maps) 34 | 35 | ## Publishing to Mozilla Addons 36 | 37 | - Make sure you have `web-ext` installed. If not, run: 38 | ```bash 39 | npm install -g web-ext 40 | ``` 41 | 42 | - Sign your extension : 43 | ```bash 44 | 45 | # Define your credentials on addons.mozilla.org (your developer account) 46 | export AMO_JWT_ISSUER = // username 47 | export AMO_JWT_SECRET = // password 48 | 49 | # Will archive and upload your extension 50 | cd gchange-client 51 | web-ext sign "--api-key=${AMO_JWT_ISSUER}" "--api-secret=${AMO_JWT_SECRET}" "--source-dir=dist/web/ext" "--artifacts-dir=${PROJECT_DIR}/dist/web/build" --id=${WEB_EXT_ID} --channel=listed 52 | ``` 53 | -------------------------------------------------------------------------------- /doc/changelog/changelog.md: -------------------------------------------------------------------------------- 1 | # v1.2.0 2 | 3 | - Crowdfunding campaigns; 4 | 5 | - Ad: 6 | * Allow free offers 7 | * Allow "free price", on offers 8 | * Mobile: display location 9 | 10 | - Share an Ad: 11 | * Display price in title 12 | * New button "share on mastodon" 13 | * Remove button google+ 14 | 15 | - Categories: 16 | * Add i18n capabilities 17 | * An admin or moderators can edit categories 18 | 19 | - Home: 20 | * Display all categories 21 | * Add a country map 22 | * Admin can add and edit country maps (SVG or GeoJSON) 23 | 24 | - New artefacts: 25 | * Firefox/Chrome extension 26 | 27 | - Android : 28 | * Fix compatibility with Android 10 29 | -------------------------------------------------------------------------------- /doc/feed/draft/feed-en.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "user_comment": "Feed that use the jsonFeed format (see jsonFeed.org for details).", 4 | "title": "News", 5 | "description": "ğchange news", 6 | "home_page_url": "https://forum.monnaie-libre.fr/tag/gchange", 7 | "feed_url": "https://raw.githubusercontent.com/duniter-gchange/gchange-client/master/doc/feed/feed-en.json", 8 | "author": { 9 | "name": "Benoit Lavenier", 10 | "url": "@BenoitLavenier", 11 | "avatar": "https://data.gchange.fr/user/profile/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/_image/avatar.png" 12 | }, 13 | "items": [ 14 | { 15 | "title": "New features", 16 | "author": { 17 | "name": "Benoit Lavenier", 18 | "url": "@8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z", 19 | "avatar": "https://data.gchange.fr/user/profile/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/_image/avatar.png" 20 | }, 21 | "date_published": "2020-03-07T19:42:00+01:00", 22 | "id": "https://forum.monnaie-libre.fr/t/cesium-evolue-aie-ca-va-piquer-mais/10015", 23 | "url": "https://forum.monnaie-libre.fr/t/cesium-evolue-aie-ca-va-piquer-mais/10015", 24 | "content_html": "
What's new?
\n" 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /doc/feed/history/2020-12-18/home_search-fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/duniter-gchange/gchange-client/0e8356dfed4bb18a6df7d235e9e9c37ff0abdcc8/doc/feed/history/2020-12-18/home_search-fr.png -------------------------------------------------------------------------------- /doc/feed/history/2021-06-21/feed-fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "https://jsonfeed.org/version/1", 3 | "user_comment": "Feed that use the jsonFeed format (see jsonFeed.org for details).", 4 | "title": "Actualités", 5 | "description": "Actualités de ğchange", 6 | "home_page_url": "https://forum.monnaie-libre.fr/tag/gchange", 7 | "feed_url": "https://raw.githubusercontent.com/duniter-gchange/gchange-client/master/doc/feed/feed-fr.json", 8 | "author": { 9 | "name": "Benoit Lavenier", 10 | "url": "https://www.gchange.fr/#/app/wot/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/", 11 | "avatar": "https://data.gchange.fr/user/profile/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/_image/avatar.png" 12 | }, 13 | "items": [ 14 | { 15 | "title": "Charte d'utilisation", 16 | "author": { 17 | "name": "Benoit Lavenier", 18 | "url": "https://www.gchange.fr/#/app/wot/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/", 19 | "avatar": "https://data.gchange.fr/user/profile/8PTThXiUSwwuPoqQWw3tuAn4MpvzQzpKhs6LMuiozS7Z/_image/avatar.png" 20 | }, 21 | "date_published": "2021-06-21T14:35:00+01:00", 22 | "id": "", 23 | "url": "", 24 | "content_html": "" 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /doc/fr/img/04e64b769cbd45b9d275cd5f81002a399a1a7684.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/duniter-gchange/gchange-client/0e8356dfed4bb18a6df7d235e9e9c37ff0abdcc8/doc/fr/img/04e64b769cbd45b9d275cd5f81002a399a1a7684.png -------------------------------------------------------------------------------- /doc/fr/img/3b8fa2f5c0465b13ae5ce74d49702e0c9f027866.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/duniter-gchange/gchange-client/0e8356dfed4bb18a6df7d235e9e9c37ff0abdcc8/doc/fr/img/3b8fa2f5c0465b13ae5ce74d49702e0c9f027866.png -------------------------------------------------------------------------------- /doc/fr/img/ceb75301172038e75f5c43b328dd7febd7bedc7e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/duniter-gchange/gchange-client/0e8356dfed4bb18a6df7d235e9e9c37ff0abdcc8/doc/fr/img/ceb75301172038e75f5c43b328dd7febd7bedc7e.png -------------------------------------------------------------------------------- /doc/fr/img/fef4f4dfe7c2168cb27c9e7f5e399fd547ce774a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/duniter-gchange/gchange-client/0e8356dfed4bb18a6df7d235e9e9c37ff0abdcc8/doc/fr/img/fef4f4dfe7c2168cb27c9e7f5e399fd547ce774a.png -------------------------------------------------------------------------------- /doc/installation.md: -------------------------------------------------------------------------------- 1 | # Installation guide 2 | 3 | ### As a web extension (Firefox, Chrome) 4 | 5 | - Download the [latest extension release](https://github.com/duniter-gchange/gchange-client/releases/latest) 6 | 7 | - Drag/drop the file into your browser; 8 | 9 | - Confirm the installation. 10 | 11 | That's it! A new button is appeared, in the top right corner. 12 | 13 | ### On smartphone 14 | 15 | - Android: 16 | * Manual installation: download then install the `.apk` from your smartphone ([latest release](https://github.com/duniter-gchange/gchange-client/releases/latest)); 17 | * Google [Play Store](https://play.google.com/store/apps/details?id=fr.gchange); 18 | - iOS: 19 | * Apple [App Store](https://apps.apple.com/us/app/%C4%9Fchange/id1479252045); 20 | 21 | ## From the web archive 22 | 23 | - Download ZIP web archive ([latest release](https://github.com/duniter-gchange/gchange-client/releases/latest); 24 | - Unzip into an empty folder; 25 | - Open the file `index.html` with your web browser. 26 | 27 | -------------------------------------------------------------------------------- /doc/mozilla/README.md: -------------------------------------------------------------------------------- 1 | Need node 12, and yarn (/!\ and NOT NPM!) 2 | 3 | # Steps to build from sources 4 | 5 | - Install node JS v12: 6 | `nvm use 12` 7 | 8 | - Clone the project (or use attached sources) 9 | ``` 10 | git clone git@github.com:duniter-gchange/gchange-client.git 11 | cd gchange-client 12 | ``` 13 | 14 | - Install global deps 15 | `npm install -g gulp @ionic/cli web-ext` 16 | 17 | - Install project deps: /!\ do NOT used NPM!! 18 | `yarn install` 19 | 20 | - Compile sources /!\ This step was missing in last version - sorry !! 21 | `gulp build` 22 | 23 | - Build the extension: 24 | `gulp webExtBuild --release` 25 | 26 | Artifacts should be inside: 'dist/web/build' 27 | 28 | 29 | -------------------------------------------------------------------------------- /doc/mozilla/describe_extenstion-en.html: -------------------------------------------------------------------------------- 1 |COMMON.BTN_ADD_PICTURE
33 |TOTO
25 | 26 |GRAPH.ACCOUNT.INPUT_CHART_TITLE
11 | 17 | 18 |GRAPH.ACCOUNT.OUTPUT_CHART_TITLE
28 | 34 | 35 |17 | Convert ! 18 | View on a map, as GeoJSON 19 |
20 | 21 | 29 |