An open API service indexing awesome lists of open source software.

https://github.com/quwazy/movwe-backend

Share movies you like with your friends! Make your list, and see your friends lists
https://github.com/quwazy/movwe-backend

docker docker-compose flyway-migrations mongodb postgresql redis spring spring-boot spring-security swagger

Last synced: 2 months ago
JSON representation

Share movies you like with your friends! Make your list, and see your friends lists

Awesome Lists containing this project

README

          

# 🎬 Movwe – Spring Boot Backend

**Movwe** is a personal movie tracking application where users can manually log the movies, series, and documentaries they’ve watched. Movwe focuses on user-generated content – allowing people to write and manage their own watch history.

This repository contains the **backend** developed with **Spring Boot**.

---

## πŸš€ Features

- πŸ” User registration and login using JWT authentication
- πŸ“ Create and manage personal entries:
- Movies
- TV Shows
- Documentaries
- ⭐ Add personal notes and ratings
- πŸ“‚ Filter and categorize entries by type and date

---

## βš™οΈ Tech Stack

- Java 21
- Spring Boot 3.x
- Spring Security + JWT
- Spring Data JPA (Hibernate)
- PostgreSQL
- MongoDB
- Docker
- RESTful API design

---

## πŸ“¦ Getting Started

### βœ… Prerequisites

- Java 17+
- Maven
- PostgreSQL & MongoDB running locally or via Docker

### πŸ”§ Configuration

Set up your `application.properties`:

```properties
# ===============================
spring.application.name=movwe-backend
server.port=9999

# ===============================
# = JPA / Hibernate Config =
# ===============================
#spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update
#spring.jpa.hibernate.ddl-auto=validate
spring.jpa.show-sql=true
#spring.jpa.properties.hibernate.format_sql=true

# ===============================
# = PostgreSQL Config =
# ===============================
spring.datasource.url=jdbc:postgresql://localhost:5432/movwe
spring.datasource.username={your_username}
spring.datasource.password={your_password}
spring.datasource.driver-class-name=org.postgresql.Driver

# ===============================
# = MongoDB Configuration =
# ===============================
spring.data.mongodb.uri=mongodb://localhost:27017/movwe
spring.data.mongodb.username={your_username}
spring.data.mongodb.password={your_password}
```

## 🧱 Project Structure

```graphql
movwe-backend/
β”œβ”€β”€ config/ # JWT & security configuration
β”œβ”€β”€ controller/ # REST API controllers
β”œβ”€β”€ dto/ # Data transfer objects
β”œβ”€β”€ model/ # JPA entities (User, Entry)
β”œβ”€β”€ repository/ # Spring Data JPA repositories
β”œβ”€β”€ security/ # JWT filters and utilities
β”œβ”€β”€ service/ # Business logic
β”œβ”€β”€ MovweBackendApplication.java
└── resources/
└── application.properties
```

---

## πŸ“„ License

This project is licensed under the MIT License.