A lightweight fullstack starter built with Spring Boot & React, perfect for tool systems, admin panels and mini apps.
While AI has made it easier to turn ideas into reality, building a clean, reliable, and extensible project foundation still requires thoughtful design, solid tech choices, and hands-on experience.
Sparrow is a lightweight fullstack starter built with Spring Boot and React, designed as a practical starting point for tool systems, admin panels, and mini apps.
It aims to reduce the overhead of setting up core infrastructure, helping developers focus more on building what matters.
see more screenshots in this directory.
- Light / Dark mode
- Full multi-language support
- User login and registration
- Role-based access control
- Configurable system settings
- API key authentication
- Basic CRUD operations (user management)
- User password reset with email verification
- Java 17
- Spring Boot 3.5.3
- sa-token 1.44.0
- mybatis-plus 3.5.12
- React ^19.1.0
- Vite ^8.2.0
- Mantine UI ^8.2.1
- Mantine DataTable ^8.2.0
- tabler icons ^3.34.0
Default username and password is root / Root@123..
You need to prepare a mysql database before you run the docker image.
Here is a sample docker run command that you can use to run Sparrow with your own MySQL.
With Docker Compose, you can easily set up both the Sparrow application and a MySQL database.
Here is a sample docker-compose.yml file that you can use to run Sparrow.
Make sure you have Java 17 installed on your machine.
Download the latest JAR file from the releases page and run it with this command.
sparrow
├── backend // Backend source code directory
│ ├── pom.xml // Maven configuration file
│ ├── src // Java Source code directory
├── Dockerfile // Dockerfile for building the backend image
├── documents // Documentation directory
│ └── deployment
├── frontend // Frontend source code directory
│ ├── eslint.config.js // ESLint configuration file
│ ├── index.html // Main HTML file
│ ├── package-lock.json // NPM lock file
│ ├── package.json // NPM configuration file
│ ├── public // Public assets directory
│ ├── src // React source code directory
│ └── vite.config.js // Vite configuration file
├── LICENSE
└── README.md
All api can be authenticated with a token or an api key in the same role.
You can change the database connection settings in the application.yml file in the backend/src/main/resources directory.
The default initial database schema and data can be found in the backend/src/main/resources/schema.sql and backend/src/main/resources/data.sql files.
The database will be automatically created when you run the application.
You can run the backend with Maven or your favorite IDE. Make sure you have Java 17 and Maven installed on.
Use npm install to install the dependencies, then use npm run dev to start the development server.
Local network proxy is enabled by default, you can change the proxy settings in the vite.config.js file in the frontend directory if you need to.
Write anything you want to build your own application 💡
- Build the frontend first with
npm run build - copy the
frontend/distdirectory to thebackend/src/main/resources/staticdirectory. - Run
mvn clean packagein thebackenddirectory to build the JAR file. - The JAR file will be generated in the
backend/targetdirectory. - You can run the JAR file with
java -jar target/sparrow-<version>.jarcommand, where<version>is the version of the JAR file.
You can use the Dockerfile in the root directory to build the Docker image.