{"id":27595698,"url":"https://github.com/tennyros/spring-boot-admin-dashboard","last_synced_at":"2026-05-03T10:38:59.615Z","repository":{"id":258918380,"uuid":"874415480","full_name":"tennyros/spring-boot-admin-dashboard","owner":"tennyros","description":"Spring Boot Admin Dashboard for User Management","archived":false,"fork":false,"pushed_at":"2025-04-21T17:44:44.000Z","size":382,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-22T12:16:58.335Z","etag":null,"topics":["bootstrap5","java-11","javascript","mapstruct","mysql","spring-boot-application","spring-boot-security","thymeleaf"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tennyros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-17T19:35:36.000Z","updated_at":"2025-04-21T17:44:48.000Z","dependencies_parsed_at":"2025-01-18T05:27:30.338Z","dependency_job_id":"a2fe92b8-f42d-4411-a973-b7c4d86206c0","html_url":"https://github.com/tennyros/spring-boot-admin-dashboard","commit_stats":null,"previous_names":["tennyros/pp_3_1_4_rest_controllers","tennyros/spring-boot-rest-fetch-js"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tennyros/spring-boot-admin-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tennyros%2Fspring-boot-admin-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tennyros%2Fspring-boot-admin-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tennyros%2Fspring-boot-admin-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tennyros%2Fspring-boot-admin-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tennyros","download_url":"https://codeload.github.com/tennyros/spring-boot-admin-dashboard/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tennyros%2Fspring-boot-admin-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32566444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap5","java-11","javascript","mapstruct","mysql","spring-boot-application","spring-boot-security","thymeleaf"],"created_at":"2025-04-22T12:16:57.338Z","updated_at":"2026-05-03T10:38:59.610Z","avatar_url":"https://github.com/tennyros.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# User Management Admin Dashboard\n\n![CI Status](https://github.com/tennyros/spring-boot-admin-dashboard/workflows/Java%20CI%20with%20Maven/badge.svg)\n![Java 11](https://img.shields.io/badge/Java-11-blue)\n![Spring Boot 2.6.2](https://img.shields.io/badge/Spring_Boot-2.6.2-brightgreen)\n\nA full-stack user management system built with Spring Boot, Spring Security and JavaScript. The application provides login functionality, user-specific views, and an admin-only panel for managing users.\n\n[English](README.md) | [Русский](README_RUS.md)\n\n## 🔧 Features\n\n- ✅ Secure login via username (email) and password\n- 🔒 Role-based access control (`USER`, `ADMIN`)\n- 🧑‍💼 Admin dashboard for:\n  - Viewing all users\n  - Creating, editing, and deleting users\n- 👤 User panel to view personal information\n- ⚡ Dynamic UI (no page reloads) via JavaScript + Fetch API\n- 📄 REST API backend with Spring MVC\n- 🎨 UI built with Thymeleaf and Bootstrap\n- 🐬 Application and MySQL containerized with Docker\n- 📦 Frontend bundled using Webpack, Babel and `frontend-maven-plugin`\n\n## 🛠 Tech Stack\n\n### Backend\n\n- Java 11\n- Spring Boot 2.6.2\n- Spring Security\n- Spring Data JPA, Hibernate\n- MySQL 8.0\n- MapStruct, Validation, Lombok\n- OpenAPI UI (Swagger)\n- JUnit5, Mockito, JaCoCo\n\n### Frontend\n\n- Vanilla JavaScript\n- Fetch API\n- Webpack\n- Babel\n- Bootstrap 5\n- Thymeleaf (Server-side templating)\n- Frontend-maven-plugin\n\n### DevOps\n\n- Docker\n- Docker Compose\n- GitHub Actions CI\n- Maven\n- Node.js v16.13.0\n- npm 8.1.0\n\n## 📋 Prerequisites\n\n🔹 If you're running with **Docker** (recommended):\n\n- Docker\n- Docker Compose\n- ~750 MB of free disk space\n\n🔹 If you're running manually:\n\n- Java 11 or higher\n- Maven 3.6+\n- MySQL 8.0\n\n\u003e ⚙️ Node.js and npm are **not required** to be installed on your system —  \n\u003e they are automatically downloaded and used by the `frontend-maven-plugin` during the build process.\n\u003e\n\u003e 🛠 However, if you plan to run the frontend manually (e.g., using `npm run build`),  \n\u003e make sure you have the following versions installed:\n\u003e\n\u003e - Node.js v16.13.0\n\u003e - npm 8.1.0\n\n## 🚀 Getting Started\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/tennyros/spring-boot-admin-dashboard.git\n   cd spring-boot-admin-dashboard\n   ```\n\n2. **Set up environment variables**\n\n   ```bash\n   # Edit the .env file with your own configuration\n   cp .env.example .env\n   ```\n\n### 🔧 Option 1: Run using Docker Compose\n\n#### Set up the docker-compose.yml file and start the application using Docker Compose\n\n   ```bash\n   # Copy the example config file (if not already configured)\n   cp docker-compose.example.yml docker-compose.yml\n\n   # Then start the containers\n   docker compose up --build -d\n   ```\n\nThe application will be available at `http://localhost:8088`\n\n### 🔧 Option 2: Run manually\n\n1. **Make sure MySQL is installed and running**\n\n   ```bash\n   # Or run a MySQL container using Docker Compose\n   # application separated:\n   docker compose up --build -d spring-boot-admin-dashboard-db\n\n   # After preparing the config file:\n   cp docker-compose.example.yml docker-compose.yml\n   ```\n\n2. **Build the application**\n\n   ```bash\n   ./mvnw clean package -Dspring.profiles.active=dev\n   ```\n\n3. **Run the application**\n\n   ```bash\n   # Run from terminal:\n   ./mvnw spring-boot:run -Dspring-boot.run.profiles=dev\n\n   # Or run from IntelliJ IDEA (Shift + F10):\n   Set `dev` as the active profile in your run configuration\n   ```\n\nThe application will be available at `http://localhost:8089`\n\n\u003e 🔁 By default, the app uses port 8088 when running in Docker and 8089 when running locally. You can change this in your application.properties file.\n\n## 🧪 REST API Endpoints\n\n| Method | Endpoint                   | Description                  |\n|--------|----------------------------|------------------------------|\n| GET    | `/api/v1/admin/users/{id}` | Get certain user             |\n| GET    | `/api/v1/admin/users`      | List all users (admin only)  |\n| POST   | `/api/v1/admin/users`      | Create new user (admin only) |\n| PUT    | `/api/v1/admin/users/{id}` | Edit user (admin only)       |\n| DELETE | `/api/v1/admin/users/{id}` | Delete user (admin only)     |\n\n## 🌐 How it works\n\n- Admins can:\n  - Access the user table\n  - Create new users\n  - Edit/delete existing users\n- All users can:\n  - Log in\n  - View their profile info\n- SPA-like behavior via Fetch API and JavaScript (no full-page reloads)\n\n## 📝 License\n\nThis project is licensed under the terms of the license included in the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftennyros%2Fspring-boot-admin-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftennyros%2Fspring-boot-admin-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftennyros%2Fspring-boot-admin-dashboard/lists"}