Cinetiq is an application designed to help film festival staff organize and plan their festivals. With Cinetiq, users can manage content such as films, series, and exhibitions, as well as handle details for various individuals involved in the festival, including film guests, accredited professionals, press representatives, and more.
- Content Management: Add and manage films, series, and exhibitions.
- Person Management: Create and manage profiles for all individuals involved in the festival, including film guests, accredited professionals, press representatives, and more.
- Backend: Java, Spring Boot, Lombok
- Frontend: TypeScript, React, Vite, Chakra UI
- Database: MongoDB, Mongock for database migrations
- State Management: Zustand
- Routing: React Router
- HTTP Client: Axios
- Authentication: OAuth2 with GitHub
- Containerization: Docker (used in CI/CD with GitHub Actions)
- Testing: JUnit, Jest, React Testing Library, MockWebServer
- Logging: Better Stack
- Static Analysis: SonarCloud
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Make sure you have the following installed:
- Java JDK 22
- Node.js
- MongoDB
-
Clone the repository directly in IntelliJ IDEA:
- Open IntelliJ IDEA.
- Select
File -> New -> Project from Version Control
. - In the dialog that appears, enter the URL of the repository:
https://github.com/josch87/Cinetiq.git
- Click
Clone
.
-
Set up the development properties file:
- Navigate to
backend/src/main/resources
in the Project tool window. - Copy
application-development.properties.sample
and rename the copy toapplication-development.properties
. - Open
application-development.properties
and fill in the required values.
- Navigate to
-
Import the Maven project:
- IntelliJ IDEA should automatically detect the
pom.xml
file in thebackend
directory and prompt you to import the Maven project. If not, right-click on thepom.xml
file and selectAdd as Maven Project
.
- IntelliJ IDEA should automatically detect the
-
Run the Spring Boot application using IntelliJ run configuration:
- The
BackendApplication
run configuration is pre-configured in the.run
folder. - Open the
Run/Debug Configurations
dialog (Run -> Edit Configurations
). - Select the
BackendApplication
configuration and clickRun
.
- The
- Navigate to the
frontend
directory:cd frontend
- Install dependencies:
npm install
- Start the Vite development server using IntelliJ run configuration:
- The
FrontendApplication
run configuration is pre-configured in the.run
folder. - Open the
Run/Debug Configurations
dialog (Run -> Edit Configurations
). - Select the
FrontendApplication
configuration and clickRun
.
- The
- Ensure MongoDB is running on your machine.
- Start the backend server:
- Follow the steps in the Backend Setup section to run the Spring Boot application using the IntelliJ run configuration.
- Start the frontend server:
- Follow the steps in the Frontend Setup section to start the Vite development server using the IntelliJ run configuration.
- Open your web browser and go to
http://localhost:5173
to access Cinetiq.
In IntelliJ IDEA, you can run the following operations using pre-configured run configurations located in the .run
folder in the root directory:
- Frontend Tests: Execute the
FrontendTests
configuration to run frontend tests. - Backend Tests: Execute the
BackendTests
configuration to run backend tests. - Backend Tests (Coverage): Execute the
BackendTests (Coverage)
configuration to run backend tests with coverage analysis. - Backend Application: Execute the
BackendApplication
configuration to start the backend application. - Frontend Application: Execute the
FrontendApplication
configuration to start the frontend application.
- Scheduled Data Retrieval: GitHub API is integrated into the backend to retrieve data periodically from registered GitHub users within the application using scheduling.
- Development: Aljoscha Zöller
- Logo Design: Nastassia Volkus
Thanks to the open-source community for the tools and frameworks used in this project.
For any inquiries or questions, feel free to contact me at web.aljoschazoeller.com.