OrgSync é uma aplicação de gerenciamento organizacional que permite sincronizar e gerenciar departamentos e usuários de forma eficiente.
Front-end: https://github.com/lithoykai/orgsync_frontend
- Autenticação e autorização com JWT
- Gerenciamento de usuários
- Gerenciamento de departamentos
- Sistema de roles (ADMIN e USER)
- API RESTful documentada com Swagger
-
Backend:
- Java 17
- Spring Boot
- Spring Security
- JWT (JSON Web Tokens)
- JPA/Hibernate
- BCrypt para criptografia de senhas
-
Frontend:
- Flutter/Dart
- Dio para requisições HTTP
- Java JDK 17 ou superior
- Maven
- Flutter SDK
- IDE de sua preferência (recomendado: IntelliJ IDEA, VS Code)
- Clone o repositório:
git clone https://github.com/lithoykai/orgsync_backend.git- Gere seu par de chaves RSA com o OpenSSL.
openssl genpkey -algorithm RSA -out app.key -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in app.key -out app.pub
Após rodar, coloque os arquivos na pasta src/main/resources/
- Configure as variáveis de ambiente no arquivo
application.propertiese caso for rodar no Docker, alterar as variveis lá:
jwt.public.key=classpath:certs/public.pem
jwt.private.key=classpath:certs/private.pem
orgsync.default.email=[email-admin]
orgsync.default.password=[senha-admin]- Execute o projeto:
mvn spring-boot:runO servidor estará disponível em http://localhost:8080
- Navegue até a pasta do frontend (caso tenha baixado):
cd frontend- Instale as dependências:
flutter pub get- Execute o projeto:
flutter run- Autenticação baseada em JWT
- Senhas criptografadas com BCrypt
- CORS configurado para segurança
- Endpoints protegidos por roles
A documentação completa da API está disponível através do Swagger UI:
http://localhost:8080/swagger-ui.html
Verifique no Swagger os demais endpoints.
-
Autenticação:
- POST
/auth/login- Login de usuário - POST
/auth/register- Registro de novo usuário
- POST
-
Usuários:
- GET
/api/users/all- Lista todos os usuários (requer ADMIN) - GET
/api/users/department/{id}- Lista usuários por departamento
- GET
-
Departamentos:
- GET
/api/department/all- Lista todos os departamentos - POST
/api/department/- Cria novo departamento (requer ADMIN) - PUT
/api/department/{id}- Atualiza departamento (requer ADMIN) - DELETE
/api/department/{id}- Remove departamento (requer ADMIN)
- GET
- ADMIN: Acesso total ao sistema
- USER: Acesso limitado às funcionalidades básicas