160 lines
4.0 KiB
Markdown
160 lines
4.0 KiB
Markdown
# digitCRM - Unified CRM System
|
||
|
||
Пълна CRM система с backend и frontend, готова за production.
|
||
|
||
## Структура на проекта
|
||
|
||
```
|
||
digitCRM/
|
||
├── backend/ # Node.js + Express API
|
||
├── frontend/ # React + Vite SPA
|
||
├── docker-compose.yml
|
||
└── README.md
|
||
```
|
||
|
||
## Технологии
|
||
|
||
### Backend
|
||
- Node.js 18+
|
||
- Express.js
|
||
- SQL Server (MSSQL)
|
||
- JWT Authentication
|
||
|
||
### Frontend
|
||
- React 19
|
||
- Vite
|
||
- Tailwind CSS
|
||
- shadcn/ui компоненти
|
||
|
||
## Бързо стартиране
|
||
|
||
### 1. Backend
|
||
|
||
```bash
|
||
cd backend
|
||
npm install
|
||
npm start
|
||
```
|
||
|
||
Server ще слуша на `http://localhost:3001`
|
||
|
||
### 2. Frontend
|
||
|
||
```bash
|
||
cd frontend
|
||
pnpm install
|
||
pnpm run dev
|
||
```
|
||
|
||
App ще слуша на `http://localhost:3000`
|
||
|
||
## Environment Variables
|
||
|
||
### Backend (.env)
|
||
```
|
||
NODE_ENV=production
|
||
PORT=3000
|
||
DB_SERVER=cw.inex-project.net
|
||
DB_PORT=14333
|
||
DB_USER=inex
|
||
DB_PASSWORD=inex123!@#
|
||
JWT_SECRET=your-secret-key
|
||
CORS_ORIGIN=http://localhost:3000
|
||
```
|
||
|
||
### Frontend (.env)
|
||
```
|
||
VITE_API_URL=http://localhost:3001/api
|
||
```
|
||
|
||
## Деплойване на Coolify
|
||
|
||
1. Отворете Coolify
|
||
2. Натиснете "New Resource" → "Docker Compose"
|
||
3. В "Source" изберете "Git"
|
||
4. Въведете: `https://git.inex-project.net/sabo/digitCRM.git`
|
||
5. Branch: `main`
|
||
6. Docker Compose File: `docker-compose.yml`
|
||
7. Deploy
|
||
|
||
## API Endpoints
|
||
|
||
### Authentication
|
||
- `POST /api/users/register` - Регистрация
|
||
- `POST /api/users/login` - Логин
|
||
|
||
### Contacts
|
||
- `GET /api/contacts` - Всички контакти
|
||
- `POST /api/contacts` - Нов контакт
|
||
- `GET /api/contacts/:id` - Детайли на контакт
|
||
- `PUT /api/contacts/:id` - Актуализирай контакт
|
||
- `DELETE /api/contacts/:id` - Изтрий контакт
|
||
|
||
### Campaigns
|
||
- `GET /api/campaigns` - Всички кампании
|
||
- `POST /api/campaigns` - Нова кампания
|
||
- `GET /api/campaigns/:id` - Детайли на кампания
|
||
- `PUT /api/campaigns/:id` - Актуализирай кампания
|
||
- `DELETE /api/campaigns/:id` - Изтрий кампания
|
||
|
||
### Tickets
|
||
- `GET /api/tickets` - Всички билети
|
||
- `POST /api/tickets` - Нов билет
|
||
- `GET /api/tickets/:id` - Детайли на билет
|
||
- `PUT /api/tickets/:id` - Актуализирай билет
|
||
- `DELETE /api/tickets/:id` - Изтрий билет
|
||
|
||
### Warranties
|
||
- `GET /api/warranties` - Всички гаранции
|
||
- `POST /api/warranties` - Нова гаранция
|
||
- `GET /api/warranties/:id` - Детайли на гаранция
|
||
- `PUT /api/warranties/:id` - Актуализирай гаранция
|
||
- `DELETE /api/warranties/:id` - Изтрий гаранция
|
||
|
||
### Feedback
|
||
- `GET /api/feedback` - Всички обратни връзки
|
||
- `POST /api/feedback` - Нова обратна връзка
|
||
- `GET /api/feedback/:id` - Детайли на обратна връзка
|
||
- `PUT /api/feedback/:id` - Актуализирай обратна връзка
|
||
- `DELETE /api/feedback/:id` - Изтрий обратна връзка
|
||
|
||
### Analytics
|
||
- `GET /api/analytics/dashboard` - Dashboard статистика
|
||
- `GET /api/analytics/contacts` - Анализ на контакти
|
||
- `GET /api/analytics/campaigns` - Анализ на кампании
|
||
- `GET /api/analytics/tickets` - Анализ на билети
|
||
- `GET /api/analytics/feedback` - Анализ на обратна връзка
|
||
|
||
## Тестване
|
||
|
||
### Регистрация
|
||
```bash
|
||
curl -X POST http://localhost:3001/api/users/register \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"firstName": "John",
|
||
"lastName": "Doe",
|
||
"email": "john@example.com",
|
||
"username": "johndoe",
|
||
"password": "Test123!@#"
|
||
}'
|
||
```
|
||
|
||
### Логин
|
||
```bash
|
||
curl -X POST http://localhost:3001/api/users/login \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"username": "johndoe",
|
||
"password": "Test123!@#"
|
||
}'
|
||
```
|
||
|
||
## Лицензия
|
||
|
||
Proprietary - Всички права запазени
|
||
|
||
## Контакт
|
||
|
||
За въпроси: sabo@inex-project.net
|