Skip to content

Repository files navigation

CryptoWallet

English | Русский

Overview

CryptoWallet is a secure, multi-currency cryptocurrency wallet application that allows users to store, send, and receive various cryptocurrencies with enterprise-grade security features.

Features

User Management

  • User registration and authentication
  • Role-based access control (RBAC)
  • Email verification
  • Password reset functionality
  • User profile management

Wallet Management

  • Multi-currency wallet support (BTC, ETH, USDT)
  • Generate new wallet addresses
  • View wallet balances and transaction history
  • Detailed wallet information
  • Wallet labeling and organization

Transactions

  • Send and receive cryptocurrencies
  • Internal transfers between wallets
  • Transaction history with advanced filtering
  • Transaction details and status tracking
  • Transaction queuing and processing

Security Features

  • Secure key management
  • Two-factor authentication (2FA)
  • IP whitelisting
  • Device management
  • Real-time transaction notifications
  • Suspicious activity monitoring

Administration

  • User management dashboard
  • System monitoring and analytics
  • System configuration
  • Automated backups
  • Audit logging

Technology Stack

Backend

  • .NET 8.0
  • ASP.NET Core Web API
  • Entity Framework Core 8.0
  • PostgreSQL 13
  • xUnit / Moq / FluentAssertions
  • AutoMapper
  • FluentValidation
  • Serilog

Security

  • JWT Authentication
  • BCrypt for password hashing
  • Data encryption at rest
  • Rate limiting
  • Request validation

Infrastructure

  • Docker
  • Docker Compose
  • GitHub Actions for CI/CD
  • Nginx as reverse proxy
  • Redis for caching

Getting Started

Prerequisites

  • .NET 8.0 SDK
  • Docker and Docker Compose
  • PostgreSQL 13+
  • Node.js 16+ (for frontend)

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/CryptoWallet.git
    cd CryptoWallet
  2. Set up the environment:

    cp .env.example .env
    # Update environment variables in .env file
  3. Start the infrastructure:

    docker-compose up -d postgres redis
  4. Apply database migrations:

    cd src/API
    dotnet ef database update
  5. Run the application:

    dotnet run --project src/API
  6. Access the application:

Testing

Run unit tests:

dotnet test

Run integration tests:

cd tests/IntegrationTests
dotnet test

Security Best Practices

  1. Always use HTTPS in production
  2. Enable 2FA for all admin accounts
  3. Regularly rotate API keys and secrets
  4. Monitor system logs for suspicious activities
  5. Keep all dependencies up to date

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a new Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For questions and suggestions, please contact: dennilen@gmail.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages