English | Русский
CryptoWallet is a secure, multi-currency cryptocurrency wallet application that allows users to store, send, and receive various cryptocurrencies with enterprise-grade security features.
- User registration and authentication
- Role-based access control (RBAC)
- Email verification
- Password reset functionality
- User profile 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
- Send and receive cryptocurrencies
- Internal transfers between wallets
- Transaction history with advanced filtering
- Transaction details and status tracking
- Transaction queuing and processing
- Secure key management
- Two-factor authentication (2FA)
- IP whitelisting
- Device management
- Real-time transaction notifications
- Suspicious activity monitoring
- User management dashboard
- System monitoring and analytics
- System configuration
- Automated backups
- Audit logging
- .NET 8.0
- ASP.NET Core Web API
- Entity Framework Core 8.0
- PostgreSQL 13
- xUnit / Moq / FluentAssertions
- AutoMapper
- FluentValidation
- Serilog
- JWT Authentication
- BCrypt for password hashing
- Data encryption at rest
- Rate limiting
- Request validation
- Docker
- Docker Compose
- GitHub Actions for CI/CD
- Nginx as reverse proxy
- Redis for caching
- .NET 8.0 SDK
- Docker and Docker Compose
- PostgreSQL 13+
- Node.js 16+ (for frontend)
-
Clone the repository:
git clone https://github.com/yourusername/CryptoWallet.git cd CryptoWallet -
Set up the environment:
cp .env.example .env # Update environment variables in .env file -
Start the infrastructure:
docker-compose up -d postgres redis
-
Apply database migrations:
cd src/API dotnet ef database update -
Run the application:
dotnet run --project src/API
-
Access the application:
- API: http://localhost:5000
- Swagger UI: http://localhost:5000/swagger
- Admin Panel: http://localhost:8080
Run unit tests:
dotnet testRun integration tests:
cd tests/IntegrationTests
dotnet test- Always use HTTPS in production
- Enable 2FA for all admin accounts
- Regularly rotate API keys and secrets
- Monitor system logs for suspicious activities
- Keep all dependencies up to date
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions and suggestions, please contact: dennilen@gmail.com