Loading repository data…
Loading repository data…
galafis / repository
DIObootcamp / Santander bootcamp fullstack developer
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
API REST em Spring Boot e SPA em Angular para cadastro e gerenciamento de salas de reunião, com persistência em banco H2 em memória.
Baseado nos repositórios de referência do DIO:
graph TD
subgraph Frontend ["🖥️ Frontend — Angular (porta 4200)"]
UI["Componente RoomList\n(room-list.component.ts)"]
SVC["RoomService\n(HttpClient + RxJS)"]
UI <--> SVC
end
subgraph Backend ["☕ Backend — Spring Boot (porta 8080)"]
CTRL["MeetingRoomController\n(@RestController)"]
SERV["MeetingRoomService\n(@Service)"]
REPO["MeetingRoomRepository\n(JpaRepository)"]
CTRL --> SERV
SERV --> REPO
end
subgraph Database ["🗄️ H2 Database (in-memory)"]
DB[("meeting_room\n(tabela JPA)")]
end
SVC -->|"HTTP REST\nGET / POST / DELETE"| CTRL
REPO <-->|"JPA / Hibernate"| DB
CTRL -->|"JSON Response"| SVC
sequenceDiagram
participant U as Usuário (Browser)
participant A as Angular Component
participant S as RoomService
participant C as Spring Controller
participant Sv as Spring Service
participant R as Repository
participant DB as H2 Database
U->>A: Clica em "Criar Sala"
A->>S: createRoom(roomData)
S->>C: POST /api/rooms { name, location, capacity }
C->>Sv: save(meetingRoom)
Sv->>R: repository.save(entity)
R->>DB: INSERT INTO meeting_room ...
DB-->>R: Entity com ID gerado
R-->>Sv: MeetingRoom salva
Sv-->>C: MeetingRoom
C-->>S: 201 Created { id, name, location, capacity }
S-->>A: Observable<MeetingRoom>
A-->>U: Atualiza lista de salas
gerenciador-salas/
├── backend/ # API Spring Boot
│ ├── pom.xml
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/gerenciadorsalas/
│ │ │ │ ├── controller/
│ │ │ │ │ └── MeetingRoomController.java
│ │ │ │ ├── model/
│ │ │ │ │ └── MeetingRoom.java
│ │ │ │ ├── repository/
│ │ │ │ │ └── MeetingRoomRepository.java
│ │ │ │ ├── service/
│ │ │ │ │ └── MeetingRoomService.java
│ │ │ │ └── MeetingRoomManagerApplication.java
│ │ └── resources/
│ │ └── application.properties
├── frontend/ # SPA Angular
│ ├── package.json
│ ├── angular.json
│ ├── tsconfig.json
│ ├── src/
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── polyfills.ts
│ │ ├── styles.css
│ │ ├── environments/
│ │ │ ├── environment.ts
│ │ │ └── environment.prod.ts
│ │ └── app/
│ │ ├── app.module.ts
│ │ ├── app.component.ts
│ │ ├── room.service.ts
│ │ └── room-list/
│ │ ├── room-list.component.ts
│ │ ├── room-list.component.html
│ │ └── room-list.component.css
└── README.md
Backend
Frontend
cd backend
mvn clean spring-boot:run
http://localhost:8080/api/rooms
cd frontend
npm install
ng serve
http://localhost:4200
| Método | Rota | Descrição |
|---|---|---|
| GET | /api/rooms | Lista todas as salas |
| GET | /api/rooms/{id} | Retorna sala por ID |
| POST | /api/rooms | Cria nova sala (envie JSON no body) |
| DELETE | /api/rooms/{id} | Remove sala por ID |
Exemplo de payload para criação:
{
"name": "Sala de Reuniões A",
"location": "Andar 3",
"capacity": 10
}
application.properties./api/rooms; para outra porta ou domínio, altere apiUrl em environment.ts.MIT License — sinta-se livre para usar, modificar e distribuir.
Desenvolvido como projeto de estudo e portfólio (Santander Bootcamp Fullstack Developer / DIO).
REST API in Spring Boot and SPA in Angular for registering and managing meeting rooms, with H2 in-memory database persistence.
graph LR
subgraph Frontend ["🖥️ Angular SPA (port 4200)"]
COMP["RoomList Component"]
HTTP["HttpClient (RxJS)"]
COMP <--> HTTP
end
subgraph Backend ["☕ Spring Boot REST API (port 8080)"]
CTRL["@RestController"]
SVC["@Service"]
REPO["JpaRepository"]
CTRL --> SVC --> REPO
end
subgraph DB ["🗄️ H2 In-Memory DB"]
TABLE[("meeting_room table")]
end
HTTP -->|"GET / POST / DELETE /api/rooms"| CTRL
REPO <-->|"JPA / Hibernate"| TABLE
cd backend
mvn clean spring-boot:run
# API available at http://localhost:8080/api/rooms
cd frontend
npm install
ng serve
# App available at http://localhost:4200
| Method | Route | Description |
|---|---|---|
| GET | /api/rooms | List all rooms |
| GET | /api/rooms/{id} | Get room by ID |
| POST | /api/rooms | Create a new room |
| DELETE | /api/rooms/{id} | Delete room by ID |
Payload example:
{
"name": "Conference Room A",
"location": "3rd Floor",
"capacity": 10
}
| Layer | Technology |
|---|---|
| Frontend | Angular 10, TypeScript, RxJS |
| Backend | Java 11, Spring Boot 2.x, Lombok |
| Persistence | Spring Data JPA, H2 Database |
application.properties.apiUrl in environment.ts.MIT License — feel free to use, modify, and distribute.
Gerenciador de Salas de Reuniões - A project built with R, JavaScript, TypeScript, Java, HTML, developed by Gabriel Demetrios Lafis as part of professional portfolio and continuous learning in Data Science and Software Engineering.
This project demonstrates practical application of modern development concepts including clean code architecture, responsive design patterns, and industry-standard best practices. The implementation showcases real-world problem solving with production-ready code quality.
git clone https://github.com/galafis/Crie-seu-Gerenciador-de-Salas-de-Reunioes-com-Java-e-Angular.git
This project is licensed under the MIT License. See the LICENSE file for details.
Developed by Gabriel Demetrios Lafis