Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hollali/e-coinvault


https://github.com/hollali/e-coinvault

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

---

# Cryptocurrency Exchange & Market

Welcome to the **Cryptocurrency Exchange & Market** project! This platform enables users to trade, buy, and sell various cryptocurrencies securely and efficiently. The exchange offers real-time market data, user-friendly interfaces, and powerful features for both novice and expert traders.

## Table of Contents
- [Features](#features)
- [Tech Stack](#tech-stack)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage](#usage)
- [Security](#security)
- [Contributing](#contributing)
- [License](#license)

## Features
- **User Registration & Authentication**: Secure user registration with email verification and two-factor authentication (2FA).
- **Live Market Data**: Real-time prices, charts, and trends for major cryptocurrencies.
- **Trading**: Buy, sell, and trade cryptocurrencies using market, limit, and stop-limit orders.
- **Wallet Management**: Secure digital wallets to store and manage multiple cryptocurrencies.
- **Deposit/Withdrawal**: Supports deposit and withdrawal functionality in fiat and cryptocurrencies.
- **Transaction History**: Track past trades, deposits, and withdrawals.
- **Admin Dashboard**: Manage users, view platform analytics, and monitor system activities.

## Tech Stack
- **Frontend**: React.js, Tailwind CSS, TypeScript
- **Backend**: Node.js, Express.js, TypeScript
- **Database**: MongoDB for user and transaction data
- **Real-Time Data**: WebSocket for live updates
- **Security**: JWT for authentication, bcrypt for password hashing
- **Payment Gateway**: Integration with payment processors for fiat transactions

## Installation

### Prerequisites
- **Node.js** v18.x or higher
- **MongoDB** v6.x or higher
- **Git** for cloning the repository

### Steps

1. **Clone the repository**
```bash
git clone https://github.com/hollali/e-coinvault.git
cd crypto-exchange-main
```

2. **Install dependencies**
```bash
npm install
```

3. **Set up environment variables**
- Create a `.env` file in the project root and configure the following variables:
```bash
MONGO_URI=your-mongodb-uri
JWT_SECRET=your-jwt-secret
API_KEY=your-api-key
PAYMENT_GATEWAY_API=your-payment-gateway-api-key
```

4. **Run the application**
```bash
npm run dev
```

5. **Open the app**
Navigate to `http://localhost:3000` in your browser to access the platform.

## Configuration

- **Database**: Ensure MongoDB is running locally or on a cloud service like MongoDB Atlas. Update `MONGO_URI` in the `.env` file with your database connection string.
- **API Keys**: Some features (e.g., real-time market data, payment gateways) require API keys. You can obtain these from providers such as CoinGecko or Binance API.

## Usage

### User Features
- **Sign Up / Sign In**: Users can register, verify their email, and sign in with 2FA protection.
- **Deposit**: Deposit funds into the platform via supported cryptocurrencies or fiat currency.
- **Market Overview**: View live prices of major cryptocurrencies, filter by volume, or market cap.
- **Buy/Sell**: Execute market or limit orders for various cryptocurrencies.
- **Transaction History**: Users can track all previous trades, deposits, and withdrawals.

### Admin Features
- **User Management**: View and manage registered users, reset passwords, or ban accounts.
- **System Monitoring**: Check platform statistics, uptime, and error logs from the admin dashboard.

## Security

- **Password Encryption**: User passwords are hashed using bcrypt.
- **JWT Authentication**: Token-based authentication is implemented for all routes.
- **SSL/TLS**: Ensure HTTPS is enabled in production for secure data transmission.
- **2FA**: Users can enable two-factor authentication to add an extra layer of security.

## Contributing

We welcome contributions to improve this platform. To contribute:
1. Fork the repository.
2. Create a new feature branch.
3. Commit your changes.
4. Push the branch and submit a Pull Request.

Please ensure that your code adheres to the project's coding standards and includes relevant tests.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

---