- Docker & Docker Compose (for containerized deployment)
- Node.js 20+ (for frontend development)
- .NET 8 SDK (for backend development)
- PostgreSQL 16 (if running locally without Docker)
- Redis 7 (if running locally without Docker)
git clone https://github.com/your-org/telegram-marketplace.git
cd telegram-marketplaceCreate environment files:
# Root .env for Docker
cp .env.example .env
# Backend appsettings
cp backend/src/WebAPI/appsettings.json backend/src/WebAPI/appsettings.Development.jsonEdit .env and appsettings.Development.json with your configuration.
With Docker:
docker-compose up postgres redis -dWithout Docker:
- Install PostgreSQL and create database:
CREATE DATABASE telegram_marketplace;
- Install Redis and start the service
cd backend
# Restore packages
dotnet restore
# Apply database migrations
dotnet ef database update --project src/Infrastructure --startup-project src/WebAPI
# Run the API
dotnet run --project src/WebAPIThe API will be available at http://localhost:5000
cd frontend
# Install dependencies
npm install
# Start development server
npm run devThe frontend will be available at http://localhost:5173
cd backend
dotnet ef migrations add MigrationName --project src/Infrastructure --startup-project src/WebAPIdotnet ef database update --project src/Infrastructure --startup-project src/WebAPIdotnet ef database update PreviousMigrationName --project src/Infrastructure --startup-project src/WebAPIcd backend
dotnet test tests/Unitcd backend
dotnet test tests/Integrationcd frontend
# Install Playwright browsers (first time only)
npx playwright install
# Run tests
npm run test:e2e
# Run with UI
npm run test:e2e:uiTo populate the database with sample data:
cd backend
dotnet run --project src/WebAPI -- --seedOr manually execute the seed SQL:
-- Categories
INSERT INTO "Categories" ("Id", "Name", "NameEn", "NameDe", "Icon", "IsActive", "SortOrder")
VALUES
(gen_random_uuid(), 'Дизайн', 'Design', 'Design', '🎨', true, 1),
(gen_random_uuid(), 'Разработка', 'Development', 'Entwicklung', '💻', true, 2),
(gen_random_uuid(), 'Маркетинг', 'Marketing', 'Marketing', '📢', true, 3);- Verify PostgreSQL is running:
docker-compose psorpg_isready - Check connection string in appsettings
- Ensure database exists and migrations are applied
- Verify Redis is running:
docker-compose psorredis-cli ping - Check Redis connection string
- Clear node_modules:
rm -rf node_modules && npm install - Clear Vite cache:
rm -rf node_modules/.vite
- Ensure HTTPS is configured (Telegram requires HTTPS)
- Check CORS settings in backend
- Verify bot token and web app URL configuration