🎨 ArtNiche - An NFT Art Collectibles Marketplace for Digital Artists, Crafted with Jetpack Compose for a Seamless Creative Experience. 💼🖼️🚀
Explore exclusive art collectibles by the most in-demand creators, trade with other collectors in the Marketplace, and mint your own NFTs all in one place!
ArtNiche try to eliminate some of the hurdles usually met by content creators who desire to monetize their art by serving it directly to the public. Not only is owning an NFT a trend nowadays, but it has also become a status symbol for those who get into it. In any case, it is an actual investment that has become profitable for both collectors and buyers.
Also you can read more detail information about this project in this Medium article.
ArtNiche interacts with the smart contracts designed in the ERC721 dapp implemented in this repository, currently it is deployed in the Polygon tesnet (Mumbai)
Please, take a look this repository if you are interested in further information about how this ERC721 dapp has been implemented:
ArtNiche - An NFT Marketplace for trading Art Collectibles built with Hardhat and Solidity
Slides are built using the template from Previewed. I extend my gratitude to them for their remarkable work and contribution.
NFT stands for non-fungible token, a digital asset the ownership of which is recorded on a tamper-proof blockchain that cannot be forged. NFTs represent real-world objects and properties. Compared to cryptocurrencies and fiat currencies, each NFT is unique and cannot be exchanged for another or used to purchase items.
Art Collectibles NFTs may be memorable artworks, the properties of which are be specified through smart contract rules that govern NFTs.
Factors like digital scarcity and unchangeable ownership generally affect the value of NFTs in ArtNiche. There is so much online content that people usually do not consider these virtual commodities to have real monetary value, so the rarer the digital item and the more it has historical and cultural relevance, the more valuable it will be.
While Art Collectible NFTs may be copied or downloaded, only the creators own it and may sell it. Ownership may not be manipulated, since NFTs live on the blockchain where records are immutable, and purchasers may always directly verify a product’s authenticity before a sale.
An ArtNiche creator or seller can search for an art collectible NFTs as well as they also can mint new NFTs, which is essentially uploading the file to be transformed into an NFT and details pertaining to it. Minting is the online process where the files of the item or collectible is recorded on the blockchain.
ArtNiche provide you some free funds of MATIC cryptocurrency and a digital wallet in order to operate with NFT in the marketplace. You could also get more matic from Mumbai faucet from your artist profile.
NFTs at ArtNiche are created in two clearly differentiated steps. The image file and the metadata linked to the NFT are formatted and registered in IPFS through the services of the Pinata platform. Once the metadata registration is completed, ArtNiche uses the CID (Content Identifier) to complete the Mint process in the ArtNiche DAPP deployed in a Polygon (Mumbai) tesnet through the wrappers of the smart contracts generated with the Web3J CLI.
Once this process is completed, the user will be informed of the success of the registration, he will be the original owner and creator of that NFT. As the original creator you will have the possibility to define a "royalty" to obtain benefits in future sales.
ArtNiche uses firestore to store complementary information to the NFTs and the use made of them.
- Minimum SDK level 23
- 100% Kotlin
- Using Android Architecture Starter Templates.
- Android Studio Flamingo.
- Architecture
- MVI, Immutability and UDF (Unidirectional Data Flow).
- Clean architecture approach.
- Dagger Hilt - dependency injection
- UI Layer
- LiveData - notify domain layer data to views.
- Lifecycle - dispose observing data when lifecycle state changes.
- ViewModel - UI related data holder, lifecycle aware.
- Coil - An image loading library for Android backed by Kotlin Coroutines.
- Jetpack Camera X - CameraX is a Jetpack support library, built to help you make camera app development easier.
- Palette API - The Palette library provides a powerful and intuitive API for creating more engaging apps extracting prominent colors from images.
- Jetpack Compose - Jetpack Compose is a modern toolkit for building native Android UI. Jetpack Compose simplifies and accelerates UI development on Android with less code, powerful tools, and intuitive Kotlin APIs.
- Jetpack Compose Material 3 - Build Jetpack Compose UIs with components from Material Design 3, the next evolution of Material Design. Material 3 includes updated themes and components, and Material You customization features such as dynamic color.
- Accompanist FlowLayout - A collection of extension libraries for Jetpack Compose from Google.
- Vico - Vico is a light and extensible chart library for Android. It’s compatible with both Jetpack Compose and the view system, but its two main modules—compose and views—are independent.
- SplashScreen API - Starting in Android 12, the SplashScreen API lets apps launch with animation, including an into-app motion at launch, a splash screen showing your app icon, and a transition to your app itself. A SplashScreen is a Window and therefore covers an Activity.
- Data Layer
- Retrofit2 + Moshi - constructing the REST API
- OkHttp3 - implementing interceptor, logging and mocking web server
- Room - The Room persistence library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
- Cloud Firestore - To persist data related to market and users.
- Firebase Auth (Social Media integrations) - To authenticate users.
- Firebase Storage - To save files such us wallets and user profile images.
- Web3J - Web3j is a highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with clients (nodes) on the Ethereum network
- Cache4k cache4k provides a simple in-memory key-value cache, with support for time-based (expiration) and size-based evictions.
- Jetpack Datastore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.
Digital creators and buyers will be able to register on ArtNiche using their Facebook/Google account or create a user with email/password.
Market statistics, art collectibles for sale, featured artists and the latest market movements, all in one place!.
Make purchases of the art collectibles that you like the most! You can resell them later and make a profit if the artist is revalued.
Discover talented artists, learn about their interests and information about them.
Browse and discover truly unique art collectibles organized by art categories!.
Become a creator of NFTs and make the most of your digital resources! You can take a photo or attach a file stored on your device.
Add the metadata related to your digital resource, explain its purpose, specify the royalty you want to ensure as the original creator of it.
You will be able to view your favorite art collectibles or those you have created or purchased, all in one place!.
You can put them up for sale or withdraw them from the market
You will be able to consult metrics of the number of visits it has received, the history of NFT transactions in the market, the price history...
Check your public profile or that of other artists! you will be able to check his followers list, the art collectibles created and his current balance too!
ArtNiche users will be able to update their personal data to make themselves known better, inform about their interests, their instagram profile on social networks, information about their work.
In addition to this, they will be able to edit some preferences related to privacy and the functionality of the application.
Through the Alchemy dashboard it is possible to review the transactions sent from the app and their status.
- We express our deep appreciation to Freepik for generously providing the resources used in this project.
Image by karlyukav on Freepik
Image by wayhomestudio on Freepik
Image by wayhomestudio on Freepik
Image by Freepik