Сайт конференции MoscowQA с возможностью подачи заявок на доклады.
moscowqa-site/
├── backend/ # NestJS бэкенд
│ ├── src/ # Исходный код бэкенда
│ ├── test/ # Тесты
│ └── ...
├── frontend/ # React фронтенд
│ ├── src/ # Исходный код фронтенда
│ └── ...
└── docker-compose.yaml
- Node.js 20+
- Docker и Docker Compose
- PostgreSQL 15+
- Клонируйте репозиторий:
git clone https://github.com/your-username/moscowqa-site.git
cd moscowqa-site- Установите зависимости:
npm run install:all- Создайте файл
.envв директории backend:
# Database
POSTGRES_USER=your_user
POSTGRES_PASSWORD=your_password
POSTGRES_DB=moscowqa
DB_HOST=localhost
DB_PORT=5432
# Email
ENABLE_EMAIL_NOTIFICATIONS=true
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your_email@gmail.com
SMTP_PASSWORD=your_app_password
# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
- Запустите все сервисы через Docker:
docker-compose upИли запустите каждый сервис отдельно:
- Запустите бэкенд:
npm run start:backend- Запустите фронтенд:
npm run start:frontend- Соберите проект:
npm run build- Запустите через Docker:
docker-compose -f docker-compose.prod.yaml upPOST /talk-requests
{
"fullName": "Имя докладчика",
"email": "email@example.com",
"company": "Название компании",
"title": "Тема доклада",
"description": "Описание доклада"
}
# Запуск всех тестов
npm run test
# Запуск тестов бэкенда
npm run test:backend
# Запуск тестов фронтенда
npm run test:frontend# Создание новой миграции
cd backend && npm run migration:generate
# Применение миграций
cd backend && npm run migration:run
# Откат последней миграции
cd backend && npm run migration:revert- Authentication: JWT-based authentication for secure access.
- Database: PostgreSQL integration using TypeORM.
- Modular Design: Separate modules for
auth,speakers,events, andtalks. - Environment Configuration: Supports
.envfile for configurable settings. - Dockerized: Easily deployable using Docker and Docker Compose.
- Node.js (>= 20.x)
- Docker and Docker Compose
-
Clone the repository:
git clone https://github.com/your-repo/nestjs-meetup-service.git cd nestjs-meetup-service -
Install dependencies:
npm install
-
Set up the
.envfile in the root directory:
WT_SECRET=your_jwt_secret_key
DB_HOST=db
DB_PORT=5432
POSTGRES_USER=
POSTGRES_PASSWORD=
POSTGRES_DB=
ADMIN_USER=
ADMIN_PASSWORD=
-
Build and run the containers:
docker-compose up --build
-
The application will be available at:
- API: http://localhost:3000
- PostgreSQL:
localhost:5432(credentials from.envfile)
- Ensure PostgreSQL is running and accessible.
- Run the development server:
npm run start:dev
POST /auth/login: Log in and receive a JWT.- Body:
{ "username": "string", "password": "string" }
- Body:
GET /speakers: List all speakers.POST /speakers: Create a new speaker.
GET /events: List all events.POST /events: Create a new event.
GET /talks: List all talks.POST /talks: Create a new talk.
src/
├── auth/ # Authentication module
├── speakers/ # Speakers module
├── events/ # Events module
├── talks/ # Talks module
├── database/ # Database configuration
└── main.ts # Application entry point
- Run linting:
npm run lint
- Run tests:
npm run test
MIT