DEMO - https://youtu.be/NaR7k9jVeW8 A cryptocurrency trading platform allows users to buy, sell, and trade digital currencies like Bitcoin and Ethereum. Cryptocurrencies are decentralized digital assets that use blockchain technology for secure and transparent transactions without the need for banks or intermediaries.
So, I developed a full-stack crypto trading platform that allows users to trade cryptocurrencies seamlessly with **real-time market data**
. I integrated the**CoinGecko API**
to provide live price updates and market trends, while **Razorpay**
and **Stripe**
payment gateways are used for secure and efficient payment processing. The platform includes **JWT-based authentication**
for enhanced security, allowing users to manage their accounts safely. I also integrated the **Gemini API to build a chatbot**
that assists users with quick information and trading queries. The backend is built using **Spring Boot**
, and the frontend with **React.js**
, providing a smooth, responsive experience for executing trades, managing portfolios, and handling payments.
- SpringBoot
- Java 17
- React js
- javascript
- Tailwind css
AI chatbot
RazorPay
Stripe
Real time data ( Coingecko API )
Spring security ( JWT )
wishlist
wallet
portfolio
profile
2 step verification
money transfer
transaction history
Activity
withdrawal
logout
Otp service
real time graph
Buy and sell
+---------------------+ +-----------------+
| Users |<--------->| Wallets |
|---------------------| +-----------------+
| id | ^
| fullName | |
| email | |
| ... | |
+---------------------+ |
|
+--------------------+ +-----------------+
| Assets |<---------->| WalletTransactions |
|--------------------| +-----------------+
| id |
| quantity |
| buy_price |<---------->+-----------------+
| coin_id | | Coins |
| user_id | +-----------------+
+--------------------+ | id |
| symbol |
+--------------------+ | ... |
| Withdrawals |<---------->+-----------------+
|--------------------|
| id |
| status |
| amount |
| user_id |
| date |
+--------------------+
+--------------------+
| Watchlists |
|--------------------+
| id |
| user_id |
+--------------------+
|
|
v
+--------------------+
| Watchlist_Coins |
|--------------------+
| watchlist_id |
| coin_id |
+--------------------+
+---------------------+ +---------------------+
| VerificationCodes |<--------->| Users |
|---------------------| +---------------------+
| id |
| otp |
| user_id |
| email |
| mobile |
| verification_type |
+---------------------+
+---------------------+ +---------------------+
| TradingHistories |<--------->| Users |
|---------------------| +---------------------+
| id |
| selling_price |
| buying_price |
| coin_id |
| user_id |
+---------------------+
+---------------------+ +---------------------+
| PaymentOrders |<--------->| Users |
|---------------------| +---------------------+
| id |
| amount |
| status |
| payment_method |
| user_id |
+---------------------+
+---------------------+ +---------------------+
| PaymentDetails |<--------->| Users |
|---------------------| +---------------------+
| id |
| account_number |
| account_holder_name |
| ifsc |
| bank_name |
| user_id |
+---------------------+
+---------------------+ +---------------------+
| Orders |<--------->| Users |
|---------------------| +---------------------+
| id |
| user_id |
| order_type |
| price |
| timestamp |
| status |
| order_item_id |
+---------------------+
|
|
v
+---------------------+ +---------------------+
| OrderItems |<--------->| Coins |
|---------------------| +---------------------+
| id |
| quantity |
| coin_id |
| buy_price |
| sell_price |
| order_id |
+---------------------+
+---------------------+ +---------------------+
| Notifications | <---------> | Users |
|---------------------| +---------------------+
| id |
| from_user_id |
| to_user_id |
| amount |
| message |
+---------------------+
+---------------------+
| MarketChartData |
|---------------------|
| id |
| timestamp |
| price |
+---------------------+
+---------------------+ +---------------------+
| ForgotPasswordTokens|<--------->| Users |
|---------------------| +---------------------+
| id |
| user_id |
| otp |
| verification_type |
| send_to |
+---------------------+
Field | Type |
---|---|
id | bigint |
fullName | varchar |
varchar | |
mobile | varchar |
password | varchar |
status | varchar |
isVerified | boolean |
twoFactorAuth_enabled | boolean |
twoFactorAuth_sendTo | varchar |
picture | varchar |
role | varchar |
Field | Type |
---|---|
id | varchar |
symbol | varchar |
name | varchar |
image | varchar |
current_price | double |
market_cap | bigint |
market_cap_rank | int |
fully_diluted_valuation | bigint |
total_volume | bigint |
high_24h | double |
low_24h | double |
price_change_24h | double |
price_change_percentage_24h | double |
market_cap_change_24h | bigint |
market_cap_change_percentage_24h | double |
circulating_supply | bigint |
total_supply | bigint |
max_supply | bigint |
ath | double |
ath_change_percentage | double |
ath_date | datetime |
atl | double |
atl_change_percentage | double |
atl_date | datetime |
roi | varchar |
last_updated | datetime |
Field | Type |
---|---|
id | bigint |
quantity | double |
buy_price | double |
coin_id | varchar |
user_id | bigint |
Field | Type |
---|---|
id | bigint |
status | varchar |
amount | bigint |
user_id | bigint |
date | datetime |
Field | Type |
---|---|
id | bigint |
user_id | bigint |
Field | Type |
---|---|
watchlist_id | bigint |
coin_id | varchar |
Field | Type |
---|---|
id | bigint |
wallet_id | bigint |
type | varchar |
date | datetime |
transfer_id | varchar |
purpose | varchar |
amount | bigint |
Field | Type |
---|---|
id | bigint |
user_id | bigint |
balance | decimal |
Field | Type |
---|---|
id | bigint |
otp | varchar |
user_id | bigint |
varchar | |
mobile | varchar |
verification_type | varchar |
Field | Type |
---|---|
id | bigint |
selling_price | double |
buying_price | double |
coin_id | varchar |
user_id | bigint |
Field | Type |
---|---|
id | bigint |
amount | bigint |
status | varchar |
payment_method | varchar |
user_id | bigint |
Field | Type |
---|---|
id | bigint |
account_number | varchar |
account_holder_name | varchar |
ifsc | varchar |
bank_name | varchar |
user_id | bigint |
Field | Type |
---|---|
id | bigint |
user_id | bigint |
order_type | varchar |
price | decimal |
timestamp | datetime |
status | varchar |
order_item_id | bigint |
Field | Type |
---|---|
id | bigint |
quantity | double |
coin_id | varchar |
buy_price | double |
sell_price | double |
order_id | bigint |
Field | Type |
---|---|
id | bigint |
from_user_id | bigint |
to_user_id | bigint |
amount | bigint |
message | varchar |
Field | Type |
---|---|
id | bigint |
timestamp | datetime |
price | double |
Field | Type |
---|---|
id | varchar |
user_id | bigint |
otp | varchar |
verification_type | varchar |
send_to | varchar |