FilmPatro is an online platform for discovering, rating, and reviewing Nepali movies. Users can create accounts, log in via social media, share feedback, and explore community perspectives on Nepali cinema.
- Movie Discovery: Browse Nepali film database
- Ratings & Reviews: Submit and read movie evaluations
- Social Login: Register/sign-in via social platforms
- Security: Robust protection mechanisms
- Email Notifications: User alerts and updates
- Version Auditing: Track changes with Hibernate Envers
- Test-Driven Development: Comprehensive test coverage
| Component | Technology |
|---|---|
| Backend | Java 21, Spring Boot 3.5.0 |
| Database | MySQL |
| Authentication | OAuth2 + JWT |
| ORM | Hibernate with Envers |
| Security | Spring Security |
| Spring Boot Mail | |
| Testing | JUnit 5, Mockito, Spring Test |
| Build Tool | Maven |
Ensure the following tools are installed on your system:
- Java Development Kit (JDK): Version 21 or later
- MySQL Server: Ensure a running MySQL instance
- Maven: To manage dependencies and build the project
git clone https://github.com/DeepDhamala/filmpatro.git
cd filmpatro- Create MySQL database:
CREATE DATABASE filmpatro;spring.datasource.url=jdbc:mysql://<your-database-url>:3306/<your-database-name>
spring.datasource.username=<your-username>
spring.datasource.password=<your-password>
spring.jpa.hibernate.ddl-auto=updateTo build the project and start the server, run:
mvn clean install
mvn spring-boot:runThe application should now be accessible at http://localhost:8080.
Key dependencies used in this project include:
- Spring Boot Starters:
- Web
- Data JPA
- Security
- Validation
- OAuth2 Client
- MySQL Driver
- JWT: JJWT (API, Impl, Jackson)
- Hibernate Envers
- Spring Mail
- Lombok
- Testing: Includes Spring Boot Test and Spring Security Test for unit and integration testing.
- DevTools: Integrated Spring Boot DevTools for simplified development.
- Docker Compose: Included dependencies support Docker deployment for easier scalability.
Contributions are welcome! Follow the steps below to contribute:
- Fork the project.
- Create your feature branch:
git checkout -b feature/YourFeature
- Commit your changes:
git commit -m 'Add some feature' - Push your branch to the repository:
git push origin feature/YourFeature
- Open a pull request.
This project does not currently define a specific license. Please contact the developer(s) for clarification or licensing queries.
For any inquiries, support, or suggestions, feel free to open an issue on the repository or contact the developer.