https://github.com/greenbabyborn/express-users
Demo REST API Service for users
https://github.com/greenbabyborn/express-users
expressjs jwt postgresql prisma-orm
Last synced: about 2 months ago
JSON representation
Demo REST API Service for users
- Host: GitHub
- URL: https://github.com/greenbabyborn/express-users
- Owner: GreenBabyBorn
- Created: 2025-08-11T15:04:30.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-08-18T15:34:22.000Z (11 months ago)
- Last Synced: 2025-09-06T14:15:45.781Z (10 months ago)
- Topics: expressjs, jwt, postgresql, prisma-orm
- Language: TypeScript
- Homepage:
- Size: 40 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# User Service API
Этот проект представляет собой сервис для управления пользователями.
## Возможности
- Регистрация пользователя
- Авторизация пользователя (JWT)
- Получение пользователя по ID (для админа или самого пользователя)
- Получение списка пользователей (только для админа)
- Блокировка/разблокировка пользователя (для админа или самого пользователя)
## Технологии
- Node.js
- Express.js
- PostgreSQL
- Prisma ORM + zod-prisma-types
- Zod
- TypeScript
- bcryptjs
- jsonwebtoken
## Установка и запуск
Следуйте этим шагам, чтобы поднять и запустить проект локально:
### 1. Клонирование репозитория
```bash
git clone https://github.com/GreenBabyBorn/express-users.git
cd express-users
```
### 2. Установка зависимостей
```bash
npm install
```
### 3. Настройка переменных окружения
Создайте файл `.env` в корневой директории проекта и добавьте следующие переменные:
```dotenv
DATABASE_URL="postgresql://user:password@localhost:5432/express_users?schema=public"
JWT_SECRET="your_super_secret_jwt_key"
PORT=3000
```
*Замените `user`, `password`, `localhost:5432` и `express_users` на данные вашей базы данных PostgreSQL.*
*`JWT_SECRET` должен быть длинной и сложной строкой.*
### 4. Настройка и миграция базы данных Prisma
Убедитесь, что ваш сервер PostgreSQL запущен и доступен по адресу, указанному в `DATABASE_URL`.
Затем сгенерируйте Prisma Client и выполните миграцию базы данных:
```bash
npx prisma generate
npx prisma migrate dev --name init
```
### 5. Запуск проекта
#### Для разработки (с автоматической перезагрузкой)
```bash
npm run dev
```
Сервер будет доступен по адресу `http://localhost:3000` (или на порту, указанном в `.env`).
#### Для продакшн билда
Сначала скомпилируйте TypeScript код:
```bash
npm run build
```
Затем запустите скомпилированный код:
```bash
node dist/index.js
```
## Тестирование API
Вы можете использовать коллекции запросов для Hoppscotch или Postman, которые были предоставлены ранее, для тестирования эндпоинтов API.
---
*При необходимости создайте пользователя-администратора вручную в базе данных (например с помощью `npx prisma studio`), чтобы протестировать эндпоинты, доступные только администраторам.*