Initial digitCRM project structure with backend and frontend
This commit is contained in:
159
README.md
Normal file
159
README.md
Normal 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
|
||||
Reference in New Issue
Block a user