This repository contains a full-stack application with a SvelteKit client and a Spring Boot server. It demonstrates modern web application architecture and DevOps practices.
This project includes:
- Client: SvelteKit with TypeScript, TailwindCSS, and reusable UI components.
- Server: Spring Boot Java application with RESTful APIs.
- DevOps: Dockerized services, CI/CD pipelines, and production-ready deployment configurations.
- Node.js (v22 or later)
- Java JDK 21+
- Gradle
- Docker and Docker Compose
- Git
git clone https://github.com/yourusername/w03-template.git
cd w03-template- Navigate to the
clientdirectory:cd client - Install dependencies:
npm install
- Navigate to the
serverdirectory:cd server - Build the project:
./gradlew build
cd client
npm run devThe client will be available at http://localhost:3000.
cd server
./gradlew bootRunThe server API will be available at http://localhost:8080.
- Built with SvelteKit and TypeScript for a modern, reactive UI.
- TailwindCSS for styling.
- Components and routes are organized in the
srcdirectory.
- Built with Spring Boot for scalable and maintainable server services.
- Gradle is used for dependency management and building.
- Source code is in the
src/main/javadirectory. - Tests are in the
src/test/javadirectory.
cd client
npm run buildcd server
./gradlew clean buildThe project includes Docker configurations for containerized deployment.
- Build and start the services:
docker-compose up --build
- Access the application:
- Client: http://localhost:3000
- Server: http://localhost:8080
Use the docker-compose.prod.yml file for production deployment. Ensure environment variables are set correctly.
docker-compose -f docker-compose.prod.yml up -dThe project includes GitHub Actions workflows for:
- Building Docker Images: Automatically builds and pushes Docker images to GitHub Container Registry.
- Deploying Docker Images: Deploys the application to a production environment using Docker Compose.
├── client/ # SvelteKit client
│ ├── src/ # Source code
│ ├── public/ # Static assets
│ └── package.json # Client dependencies
│
├── server/ # Spring Boot server
│ ├── src/ # Source code
│ ├── build.gradle # Gradle build file
│ └── Dockerfile # Server Dockerfile
│
├── docker-compose.yml # Docker Compose for local development
├── docker-compose.prod.yml # Docker Compose for production
└── .github/workflows/ # CI/CD workflows
This project is licensed under the MIT License.