Initial digitCRM project with backend and frontend

This commit is contained in:
2026-06-28 14:16:11 +03:00
commit fd30a5f2d1
94 changed files with 10919 additions and 0 deletions

159
README.md Normal file
View File

@@ -0,0 +1,159 @@
# 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