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/resourcesin the Project tool window. - Copy
application-development.properties.sampleand rename the copy toapplication-development.properties. - Open
application-development.propertiesand fill in the required values.
- Navigate to
-
Import the Maven project:
- IntelliJ IDEA should automatically detect the
pom.xmlfile in thebackenddirectory and prompt you to import the Maven project. If not, right-click on thepom.xmlfile and selectAdd as Maven Project.
- IntelliJ IDEA should automatically detect the
-
Run the Spring Boot application using IntelliJ run configuration:
- The
BackendApplicationrun configuration is pre-configured in the.runfolder. - Open the
Run/Debug Configurationsdialog (Run -> Edit Configurations). - Select the
BackendApplicationconfiguration and clickRun.
- The
- Navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm install
- Start the Vite development server using IntelliJ run configuration:
- The
FrontendApplicationrun configuration is pre-configured in the.runfolder. - Open the
Run/Debug Configurationsdialog (Run -> Edit Configurations). - Select the
FrontendApplicationconfiguration 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:5173to 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
FrontendTestsconfiguration to run frontend tests. - Backend Tests: Execute the
BackendTestsconfiguration to run backend tests. - Backend Tests (Coverage): Execute the
BackendTests (Coverage)configuration to run backend tests with coverage analysis. - Backend Application: Execute the
BackendApplicationconfiguration to start the backend application. - Frontend Application: Execute the
FrontendApplicationconfiguration 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.
