Production-ready Telegram Mini App for a services marketplace with full e-commerce functionality.
- Service Catalog: Browse, search, and filter services
- Shopping Cart: Add services, apply promo codes
- Multiple Payment Methods: YooKassa, Robokassa, Telegram Stars
- Order Management: Track orders, update status
- Reviews & Ratings: 5-star reviews with seller responses
- Real-time Notifications: SignalR-powered updates
- Seller Dashboard: Manage services, view analytics
- Multilingual Support: Russian, English, German
- ASP.NET Core 8.0
- PostgreSQL with Entity Framework Core
- Redis for caching
- SignalR for real-time features
- JWT + Telegram authentication
- React 18 with TypeScript
- Telegram Mini Apps SDK (@twa-dev/sdk)
- TanStack Query for data fetching
- Zustand for state management
- Tailwind CSS for styling
- Framer Motion for animations
- Playwright for E2E tests
- xUnit for backend unit tests
- Docker & Docker Compose
- Node.js 20+
- .NET 8 SDK (for local development)
- Copy the environment template:
cp .env.example .env- Configure the required variables:
TELEGRAM_BOT_TOKEN=your_bot_token
JWT_SECRET=your_super_secret_key_at_least_32_chars
YOOKASSA_SHOP_ID=your_shop_id
YOOKASSA_SECRET_KEY=your_secret_key
ROBOKASSA_LOGIN=your_login
ROBOKASSA_PASSWORD1=password1
ROBOKASSA_PASSWORD2=password2
DB_PASSWORD=your_db_password
WEBAPP_URL=https://your-webapp-url.com# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downThe application will be available at:
- Frontend: http://localhost:80
- API: http://localhost:5000
- Swagger: http://localhost:5000/swagger
Backend:
cd backend
dotnet restore
dotnet run --project src/WebAPIFrontend:
cd frontend
npm install
npm run devTelegramMarketplace/
├── backend/
│ ├── src/
│ │ ├── Domain/ # Entities, interfaces, domain events
│ │ ├── Application/ # Use cases, DTOs, services
│ │ ├── Infrastructure/ # Persistence, payments, auth
│ │ └── WebAPI/ # Controllers, middleware, hubs
│ └── tests/
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom hooks
│ │ ├── services/ # API services
│ │ ├── store/ # Zustand stores
│ │ └── types/ # TypeScript types
│ └── e2e/ # Playwright tests
├── docker-compose.yml
├── nginx.conf
└── README.md
Swagger documentation is available at /swagger when running the backend.
POST /api/auth/telegram- Authenticate with TelegramGET /api/services- List services with filtersGET /api/services/{id}- Get service detailsPOST /api/cart/items- Add to cartPOST /api/orders- Create orderPOST /api/payments/{provider}/create- Create payment
cd frontend
npm run test:e2e
npm run test:e2e:ui # With UIcd backend
dotnet testSee DEPLOYMENT.md for detailed deployment instructions.
- Set strong JWT secret (32+ characters)
- Configure HTTPS with valid SSL certificate
- Set up payment provider webhooks
- Configure Telegram bot menu button
- Enable database backups
- Set up monitoring (health checks)
- Configure CORS for production domain
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - see LICENSE for details.
Built with Telegram Mini Apps SDK. Learn more at core.telegram.org/bots/webapps