Private File Sharing — веб-приложение для управления файлами с авторизацией и гибким контролем доступа. Администраторы могут загружать файлы (PDF, Word и т.д.), назначать уровни доступа (default
, pro
, admin
), а также управлять пользователями (создание, редактирование, удаление) с различными ролями (admin
, default
, pro
). Сервис идеально подходит для организаций, которым нужна надёжная система хранения и разграничения доступа к документам.
- Backend: Java Spring Boot, Java Spring Security (для авторизации и JWT), Java Spring Data (для работы с базой данных).
- Frontend: HTML, CSS (Tailwind CSS), JavaScript (чистый, без фреймворков).
- API: RESTful API с поддержкой CORS.
- Безопасность: JWT-токены, хэширование паролей, ролевая модель доступа.
POST /auth/login
- Тело:
{ "login": "string", "password": "string" }
- Ответ:
{ "token": "string", "role": "string" }
- Коды: 200, 401
- Тело:
POST /files/upload
- Заголовки:
Authorization: Bearer <token>
- Тело: FormData (
file
,accessLevel
) - Ответ:
{ "id": "string", "name": "string", "accessLevel": "string", "uploadDate": "string" }
- Коды: 201, 401, 400
- Заголовки:
GET /files
- Заголовки:
Authorization: Bearer <token>
- Ответ:
[{ "id": "string", "name": "string", "accessLevel": "string", "uploadDate": "string" }]
- Коды: 200, 401
- Заголовки:
GET /files/:id
- Заголовки:
Authorization: Bearer <token>
- Ответ: Файл (поток данных,
Content-Disposition: attachment
) - Коды: 200, 401, 404
- Заголовки:
DELETE /files/:id
- Заголовки:
Authorization: Bearer <token>
- Ответ: Пустое тело
- Коды: 204, 401, 404
- Заголовки:
PATCH /files/:id
- Заголовки:
Authorization: Bearer <token>
- Тело:
{ "accessLevel": "string" }
- Ответ:
{ "id": "string", "name": "string", "accessLevel": "string", "uploadDate": "string" }
- Коды: 200, 401, 404
- Заголовки:
GET /users
- Заголовки:
Authorization: Bearer <token>
- Ответ:
[{ "id": "string", "login": "string", "accessLevel": "string" }]
- Коды: 200, 401, 403
- Заголовки:
POST /users
- Заголовки:
Authorization: Bearer <token>
- Тело:
{ "login": "string", "password": "string", "accessLevel": "string" }
- Ответ:
{ "id": "string", "login": "string", "accessLevel": "string" }
- Коды: 201, 401, 403, 400
- Заголовки:
PATCH /users/:id
- Заголовки:
Authorization: Bearer <token>
- Тело:
{ "password": "string", "accessLevel": "string" }
(оба поля опциональны) - Ответ:
{ "id": "string", "login": "string", "accessLevel": "string" }
- Коды: 200, 401, 403, 404
- Заголовки:
DELETE /users/:id
- Заголовки:
Authorization: Bearer <token>
- Ответ: Пустое тело
- Коды: 204, 401, 403, 404
- Заголовки: