# neroshop - WORK IN PROGRESS (ON HOLD) [![banner](assets/images/appicons/LogoLight250x250.png)](https://github.com/layters/testshop "neroshop logo") NeroShop is a decentralized peer-to-peer marketplace for trading goods and services with [**Monero**](https://getmonero.org/) > __Disclaimer: The neroshop team is comprised of a single developer that operates independently > and is not affiliated, associated, authorized, endorsed by, or in any way officially connected > with the Monero project, Monero team or any other organization.__ ## Table of contents - [Demo](#demo) - [Project Status](#project-status) - [Building neroshop](#building-neroshop) - [Dependencies](#dependencies) - [Compiling neroshop from source](#compiling-neroshop-from-source) - [Contributing](#contributing) - [License](#license) - [Donations](#donations) - [Resources](#resources) - [Thanks](#thanks) ## Demo
Click to load images ![Wallet_Keys_Generation](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Wallet_Keys_Generation.png) ![Registration](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Registration.png) ![Login](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Login.png) ![CatalogGrid](https://github.com/layters/testshop/blob/main/assets/images/screenshots/CatalogGrid.png) ![CatalogList](https://github.com/layters/testshop/blob/main/assets/images/screenshots/CatalogList.png) ![ProductPage](https://github.com/layters/testshop/blob/main/assets/images/screenshots/ProductPage.png) ![SettingsDialog_Network](https://github.com/layters/testshop/blob/main/assets/images/screenshots/SettingsDialog_Monero.png) ![SettingsDialog_General](https://github.com/layters/testshop/blob/main/assets/images/screenshots/SettingsDialog_General.png) ![HomePage](https://github.com/layters/testshop/blob/main/assets/images/screenshots/HomePage.png) ![HomePage_Recent_Listings](https://github.com/layters/testshop/blob/main/assets/images/screenshots/HomePage_Recent_Listings.png) ![Dashboard](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Dashboard_Overview.png) ![Store_Inventory](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Store_InventoryTab.png) ![Store_Inventory_ProductDialog_Top](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Store_InventoryTab_ProductDialog_Top.png) ![Store_Inventory_ProductDialog_Mid](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Store_InventoryTab_ProductDialog_Mid.png) ![Store_Inventory_ProductDialog_Bottom](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Store_InventoryTab_ProductDialog_Bottom.png) ![WalletPage_Send](https://github.com/layters/testshop/blob/main/assets/images/screenshots/WalletPage_BalanceSend.png) ![WalletPage_Receive](https://github.com/layters/testshop/blob/main/assets/images/screenshots/WalletPage_BalanceReceive.png) ![WalletPage_Transactions](https://github.com/layters/testshop/blob/main/assets/images/screenshots/WalletPage_BalanceTxs.png) ![ProfilePage_ListingsTab](https://github.com/layters/testshop/blob/main/assets/images/screenshots/ProfilePage_ListingsTab.png) ![ProfilePage_RatingsTab](https://github.com/layters/testshop/blob/main/assets/images/screenshots/ProfilePage_RatingsTab.png) ![ProfilePage_With_Custom_Avatar](https://github.com/layters/testshop/blob/main/assets/images/screenshots/ProfilePage_With_Custom_Avatar.png) ![MessagesPage](https://github.com/layters/testshop/blob/main/assets/images/screenshots/Messages_Page.png)
## Project Status https://gist.github.com/layters/83efdef0c5ea3d8ff458bfc312d11be3 ## Building neroshop ### Dependencies :heavy_check_mark: = Currently in use | :o: = Optional | :x: = Marked for deprecation or removed | :grey_question: = Not in use, but may be considered :white_square_button: = For CLI only | :package: = Bundled | Library | Minimum Ver. | Purpose | Status | |--------------------------------------------------------------------|--------------------|------------------------------------------------------------------------|----------------------------------------------------| | [monero-cpp](https://github.com/monero-ecosystem/monero-cpp) | latest | monero wallet and payment system | :heavy_check_mark: :package: | | [sqlite3](https://sqlite.org/) | 3.38.0 | database management | :heavy_check_mark: :package: | | [QR Code generator](https://github.com/nayuki/QR-Code-generator) | ? | qr code generation | :heavy_check_mark: :package: | | [json](https://github.com/nlohmann/json/) | ? | json parsing and msgpack | :heavy_check_mark: :package: | | [curl](https://github.com/curl/curl) | ? | currency conversion | :heavy_check_mark: :white_square_button: | | [openssl](https://github.com/openssl/openssl) | 1.1.1 | for curl, sha256 sum and message encryption | :heavy_check_mark: | | [Qt](https://www.qt.io/) | 5.15.x | graphical user interface | :heavy_check_mark: | | [stduuid](https://github.com/mariusbancila/stduuid) | ? | unique id generation | :heavy_check_mark: :white_square_button: :package: | | [linenoise](https://github.com/antirez/linenoise) | ? | command line interface | :heavy_check_mark: :white_square_button: :package: | | [lua](https://www.lua.org/) | 5.1.5 | configuration script | :heavy_check_mark: :package: | | [cxxopts](https://github.com/jarro2783/cxxopts) | ? | command line option parser | :heavy_check_mark: :package: | | [libi2pd](https://github.com/PurpleI2P/i2pd) | latest | network proxy | :heavy_check_mark: :package: | | [i2psam](https://github.com/i2p/i2psam) | ? | network proxy | :grey_question: :package: | ### Compiling neroshop from source **0. Install prerequisites** Debian/Ubuntu ```bash sudo apt install build-essential cmake git ``` Arch ```bash sudo pacman -Sy --needed base-devel cmake git ``` Fedora ```bash sudo dnf install gcc gcc-c++ make cmake git ``` **1. Clone neroshop (and its submodules)** ```bash git clone --recurse-submodules https://github.com/layters/testshop.git ``` ```bash cd testshop ``` **2. Install dependencies** Debian/Ubuntu ```bash # neroshop sudo apt install libcurl4-openssl-dev libssl-dev qtdeclarative5-dev qml-module-qt-labs-platform qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-shapes qml-module-qtquick-dialogs # monero-cpp (monero) sudo apt update && sudo apt install pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev python3 ccache ``` Arch (missing Qt/QML libraries) ```bash # neroshop sudo pacman -Sy --needed curl openssl qt5-declarative # monero-cpp (monero) sudo pacman -Syu --needed boost openssl zeromq libpgm unbound libsodium libunwind xz readline expat gtest python3 ccache qt5-tools hidapi libusb protobuf systemd ``` Fedora (missing Qt/QML libraries) ```bash # neroshop sudo dnf install libcurl-devel openssl-devel # monero-cpp (monero) sudo dnf install boost-static libstdc++-static pkgconf boost-devel openssl-devel zeromq-devel openpgm-devel unbound-devel libsodium-devel libunwind-devel xz-devel readline-devel expat-devel gtest-devel ccache qt5-linguist hidapi-devel libusbx-devel protobuf-devel protobuf-compiler systemd-devel ``` **3. Update monero-cpp submodules** ```bash cd external/monero-cpp && ./bin/update_submodules.sh ``` ```bash cd external/monero-project ``` **4. Install expat and unbound (May be required to build monero-project on Debian/Ubuntu otherwise, this step can be skipped):** ```bash wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 tar -xf expat-2.4.8.tar.bz2 sudo rm expat-2.4.8.tar.bz2 cd expat-2.4.8 ./configure --enable-static --disable-shared make sudo make install cd ../ ``` ```bash wget https://www.nlnetlabs.nl/downloads/unbound/unbound-1.19.0.tar.gz tar xzf unbound-1.19.0.tar.gz sudo apt update sudo apt install -y build-essential sudo apt install -y libssl-dev sudo apt install -y libexpat1-dev sudo apt-get install -y bison sudo apt-get install -y flex cd unbound-1.19.0 ./configure --with-libexpat=/usr --with-ssl=/usr make sudo make install cd ../ ``` **5. Build monero-project to create .a libraries** ```bash make release-static -j$(nproc) ``` ```bash cd ../../../../ ``` **6. Build neroshop** To build with [**CMake**](https://cmake.org/): ```bash # Build external libraries cd external/ cmake . make -j$(nproc) cd .. ``` ```bash # Build neroshop cd build cmake .. #-DNEROSHOP_BUILD_CLI=1 #-DNEROSHOP_BUILD_TESTS=1 make -j$(nproc) ``` **7. Run neroshop** ```bash # Run neroshop ./neroshop ``` ## Contributing See [Wiki](https://github.com/layters/testshop/wiki) ## License This project is licensed under the [GNU General Public License v3.0](LICENSE) ## Donations **Monero (XMR):** ``` 83QbQvnnyo7515rEnW8XwF1hbP5qMab6sHXFzP6pg3EKGscgXCbVjbt1FX5SF7AV9p4Ur1tiommuQSzrQQRHkZicVYu6j8Y ```

**Wownero (WOW):** ``` WW2pQTQWHpyJf2CHrCmZG7Tn3zBnYRZTH8g4U3pSZf5s6xsTXrZc9odDWmrWzjRc9MMQWrKXxjHsRdzH5JpJ7kzx1jZuSVSfi ```

[**OpenAlias**](https://openalias.org/): `donate.neroshop.org` or `donate@neroshop.org` ## Resources - Website: [neroshop.org](https://neroshop.org/) - DHT Specification: [specs](https://github.com/layters/specs) - Git Mirrors: - [Codeberg](https://codeberg.org/layter/neroshop) - [Gitea](https://git.wownero.com/layter/neroshop) - [Radicle](https://radicle.xyz): `rad:z2Y72SYpHTkiRXrn4hkZaf1VYhc7J` - Lemmy: https://monero.town/c/neroshop - Mail: neroshop@protonmail.com - Matrix Rooms: - [#neroshop:matrix.org](https://matrix.to/#/#neroshop:matrix.org) - [#neroshop-dev:matrix.org](https://matrix.to/#/#neroshop-dev:matrix.org) ## Thanks * [u/EchoingCat](https://www.reddit.com/user/EchoingCat/) — for the revision of the official neroshop logo * [woodser](https://github.com/woodser) — for his guidance and for his work on the monero-cpp library which has made the development of this app possible * [yuriio147](https://github.com/yuriio147) — for his work on various QML components, the currency converter, wallet address qr provider, image loader and image provider, fixing a major bug in the RSA encryption code, the RSA signing and verifying functions, and for teaching me some Qt/QML techniques * [lza_menace](https://twitter.com/lza_menace) — for creating the new monero.fail JSON API endpoint * everyone in our matrix room — for sharing many great ideas that have been useful to the project [//]: # (./clean.sh) [//]: # (git checkout -b main) [//]: # (git add .gitignore .gitmodules assets/ cmake/ CMakeLists.txt external/ LICENSE qml/ qml.qrc README.md src/ tests/) [//]: # (git commit -m"..." or git commit -a --allow-empty-message -m "") [//]: # (git push -u origin backup --force) [//]: # (https://git.wownero.com/layter/neroshop/settings => Mirror Settings => Synchronize Now) [//]: # (removing an external lib from submodules index: git rm --cached path/to/submodule)