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
client
directory:cd client
- Install dependencies:
npm install
- Navigate to the
server
directory:cd server
- Build the project:
./gradlew build
cd client
npm run dev
The client will be available at http://localhost:3000.
cd server
./gradlew bootRun
The 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
src
directory.
- 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/java
directory. - Tests are in the
src/test/java
directory.
cd client
npm run build
cd server
./gradlew clean build
The 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 -d
The 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.