Gallxiv is a full-stack web application developed with Spring Boot (backend) and Vue 3 (frontend). It is designed to handle functionalities such as user authentication, post management, and media handling. The project is modular and containerized for ease of deployment.
- User Authentication: Secure login with JWT-based authentication.
- Post Management: APIs for creating, retrieving, and managing posts.
- Media Handling: APIs for uploading and retrieving images.
- Spring Boot Configuration: Flexible configuration using
application.yml
.
- Vue 3 Framework: Modern frontend development using Composition API.
- State Management: Powered by Pinia for application state.
- API Integration: Auto-generated API hooks for seamless interaction with the backend.
- Responsive Design: Mobile-friendly layouts.
src/main/kotlin/com/benjk/gallexiv
├── config # Security and application configuration
├── controller # REST controllers for APIs
├── data
│ ├── dto # Data Transfer Objects
│ ├── entity # Database entities
├── repository # Database repositories
├── service # Business logic services
frontend
├── public # Static assets (e.g., favicon)
├── src
│ ├── api # API hooks and schemas
│ ├── components # Reusable Vue components
│ ├── plugin # Plugins for Toastify and Vuetify
│ ├── router # Vue Router configuration
│ ├── stores # Pinia stores for state management
│ ├── views # Application views
- Backend
application.yml
: Main configuration file for the Spring Boot application.build.gradle.kts
: Gradle build script.
- Frontend
vite.config.ts
: Vite configuration.package.json
: Node.js dependencies and scripts.
- Java 17
- Node.js 16+
- Docker
- Navigate to the backend directory:
cd gallxiv-main
- Build the project using Gradle:
./gradlew build
- Run the application:
java -jar build/libs/gallexiv.jar
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Start the database container:
docker-compose -f docker-compose-database.yml up