{"id":26869442,"url":"https://github.com/anthippi/film-library","last_synced_at":"2025-03-31T06:17:08.787Z","repository":{"id":282589252,"uuid":"761427856","full_name":"Anthippi/Film-Library","owner":"Anthippi","description":"Γραφικό πρόγραμμα περιήγησης ταινιών με C++ και τη βιβλιοθήκη SGG.","archived":false,"fork":false,"pushed_at":"2025-03-24T12:54:10.000Z","size":16986,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T13:41:20.753Z","etag":null,"topics":["cpp","film-library","sgg","sgg-library"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anthippi.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-21T21:10:19.000Z","updated_at":"2025-03-24T12:54:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"b0815125-4d58-4d32-b26a-f5040c1641da","html_url":"https://github.com/Anthippi/Film-Library","commit_stats":null,"previous_names":["anthippi/film-library"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anthippi%2FFilm-Library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anthippi%2FFilm-Library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anthippi%2FFilm-Library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anthippi%2FFilm-Library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anthippi","download_url":"https://codeload.github.com/Anthippi/Film-Library/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246423720,"owners_count":20774820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","film-library","sgg","sgg-library"],"created_at":"2025-03-31T06:17:08.128Z","updated_at":"2025-03-31T06:17:08.776Z","avatar_url":"https://github.com/Anthippi.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Movie Browser Application \"Film-Library\"\n\nThis application is a graphical interface for viewing movies, with filtering and search capabilities, built using the **[SGG](https://github.com/cgaueb/sgg)** library. Users can browse a collection of movies, view their details, and apply filters to narrow down the search according to their preferences.\n\n## Description\n\nThe provided code creates an application where users can view movies in a graphical interface. Each movie contains details such as:\n- Title\n- Directors\n- Cast\n- Genre\n- Year of release\n- Duration\n- Summary\n\nThe application includes filters for:\n- Movie genre\n- Year of release\n\nMovies are organized in an interactive interface, where users can select filters and view corresponding movies that meet their criteria.\n\n## Files and Functions\n\nThe application consists of the following main parts:\n\n1. **Library.h / Library.cpp**:\n   - Contains the data structure that represents the movie library, including movies, filters, and various functions for initialization, searching, and applying filters.\n   - Within this file, the structure of movies is defined, the library is created, movies are added, and filtering functionality is implemented based on genre or year.\n\n2. **Widgets.h / Widgets.cpp**:\n   - These files define the classes for various \"widgets\" (buttons, checkboxes, filters) responsible for displaying and interacting with the user.\n   - Users can interact with the filters to narrow down the movies displayed on the screen.\n\n3. **Main.cpp**:\n   - The main code of the application that handles window creation, continuous updating, and redrawing of the graphical interface.\n   - In the `main()` function, the application window is created, and updates and drawing are handled through the graphical environment.\n\n4. **Browser.h / Browser.cpp**:\n   - Defines the `Browser` class, which manages the main movie browser.\n   - Includes methods for updating and displaying movies, as well as interacting with widgets and filters.\n\n5. **Graphics Library**:\n   - The `graphics.h` library is used to create the graphical environment and interact with the user.\n   - The graphics canvas allows drawing widgets, movies, and scaling for better fitting to the screen.\n\n## Use of SGG\n\nThe application uses the **SGG** (Simple Game Graphics Library), which provides tools and methods for creating graphical interfaces and interacting with the user. In this particular case, SGG helps with:\n- Window creation and graphics canvas management.\n- Drawing interactive elements and applying scaling to fit the window.\n- Handling interactions with widgets and filters.\n\nThe SGG library offers:\n- Window and canvas creation.\n- Management of updates and drawing operations.\n- Interaction with widgets and filters.\n\n## Features\n\n- **Movie Browsing**: Users can view all available movies.\n- **Filters**: Users can filter movies by genre or year of release.\n- **Interaction**: Through interactive buttons and checkboxes, users can select the filters they want.\n- **Graphical Presentation**: The application uses a graphical interface to display the movies based on selected filters.\n\n## Prerequisites\n\nTo run the application, you need to have the `graphics.h` library and **SGG** installed and a compatible environment for running C++ applications. The application has been developed in C++ and requires a compatible environment for graphic execution.\n\n## Installation\n\n1. Download the necessary project files (or clone the repository).\n2. Install the `graphics.h` library and **SGG** in your development environment.\n3. Compile the code using a tool like `Visual Studio` or through your preferred IDE.\n4. Run the application and start interacting with the movies and filters!\n\n## Design and Operation\n\n- The application uses a simple GUI that allows the user to browse through movies using buttons and checkboxes.\n- Movies are organized in three rows in the graphical window.\n- Filters for genre and year allow the user to narrow down the movies shown.\n  \n![Film_Library1](https://github.com/user-attachments/assets/bbf8b296-4a0e-4da4-aa6a-fdbf9e3398c9)\n![Film_Library2](https://github.com/user-attachments/assets/17eb3c5b-229e-4bd7-b853-5426bae42f37)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthippi%2Ffilm-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanthippi%2Ffilm-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanthippi%2Ffilm-library/lists"}