tolikpylypchuk / cineaste Goto Github PK
View Code? Open in Web Editor NEWAn app which keeps track of the movies and TV series you have watched or would like to watch.
Home Page: https://cineaste.tolik.io
License: MIT License
An app which keeps track of the movies and TV series you have watched or would like to watch.
Home Page: https://cineaste.tolik.io
License: MIT License
Use message boxes provided by material design instead of those provided by Windows. Implement a simple message box with a single 'OK' button and a confirmation dialog with 'Yes' and 'No' buttons.
Add the following to the recent files list:
Add files to the list when the app is closed
Remove the item from the list if the user tries to open a file and it doesn't exist anymore
Add support for localizing the UI. Currently, only Ukrainian will be used as the UI language, but that should be easily changed if needed.
Configure logging to a file using Serilog and Splat.
Do not store the colors for not watched or released entries in the settings, making them the same for every kind. Instead, let each kind specify its own color for not watched or not released movies or series.
Add an option to the season watch status - 'Stopped watching'.
Instead of 'Is Watched' in the series, add a series watch status - 'Not watched', 'Watching', 'Watched' and 'Stopped watching'.
Currently seasons can be either watched or not watched with no indication whether I'm watching the season at the moment. Change the boolean field to an enum, which has the following values: watched, watching and not watched.
Same goes with the release status of the season. Change the status from a boolean field to and enum with the following values: not started, airing, finished.
Currently the only implemented validation of the files that are being opened is checking if the files are SQLite databases. The schema of those files should also be checked.
The main point of this app is to actually show a list for movies, series and movie series. When a file is opened, the list should be loaded and shown.
The list contains movies and series that the user has watched already, or is going to watch. There may be multiple parts in a franchise (sequels/prequels/etc.), that's why movie series exist - they group movies and series of the same franchise together. A movie series can be a part of a larger movie series - the levels of nesting are unlimited.
There are 3 types of list items:
ShowTitles
property is set to true
)A list item should contain a sequence number (if a movie/series is part of a movie series), a title, an original title, and release year (or years for series). Since every list item may have multiple titles, only the first title should be shown in the list (this may be reconsidered in the future).
The sorting of the list items is quite complex (this is a high-level overview, and not a exhaustive list):
When a movie is saved and its title is changed, the list should be reordered and if the movie is not visible in the list after that, the list should be scrolled so that the movie is visible again.
Implement showing a season form when a season is selected from series form.
The form should include:
There should be buttons to navigate back to the series form and to the next/previous season/special episode at the top of the form.
Saving the season doesn't actually write it into the database - only saving its series does.
Saving and cancelling changes should be available only when the changes are present. Every field should be validated. The poster should be fetched from the internet and cached by Akavache.
This epic contains issues related to file settings and user preferences.
Implement the following:
Open a file through the home page
Open the file externally, including when the app is already running
Create a file through the home page
Close a file and add it to the 'Recently Closed Files' list
This epic contains issues related to working with files which contain the movie lists.
This epic contains issues related to the app's home page.
Implement the translation of text using a markup extension. This will let buttons have uppercase text without having it like that in the resources. Also, it will be easier to add dynamic localiation if needed later.
Implement showing a miniseries form when a miniseries is selected from the list. A miniseries is a series with only one season (which in turn was released during only one period), no special episodes, and a IsMiniseries
property set to true
. As such, miniseries are much simpler than normal series and don't require additional forms to be edited.
Also, the ability of the normal series form to turn into a miniseries form when the button to convert to miniseries is clicked should be implemented.
The form should include:
In addition, a button to convert to a normal series should be at the bottom - with the series already having one season with a default name.
Saving and cancelling changes should be available only when the changes are present. Every field should be validated. The poster should be fetched from the internet and cached by Akavache.
The list of recent files is sometimes complete, sometimes not and sometimes it's empty.
This epic contains issues related to exporting and importing information about movies and series.
This epic contains issues related to the forms for editing movies, series, and franchises.
Save the state of the main window when closing the app and restore it when opening the app.
Implement showing a series form when a series is selected from the list.
The form should include:
The series should contain at least one season or special episode. When a season or special episode is selected, their respective form is shown. The seasons and special episodes should have the ability to be reordered.
In addition, a button for converting the series to miniseries (if it contains 1 or 0 seasons) should be at the bottom.
Saving and cancelling changes should be available only when the changes are present. Every field should be validated. The poster should be fetched from the internet and cached by Akavache.
Remove the intermediate dialog. Derive the name of the list from the file name. Users may change the list name to whatever they want later through the settings UI.
Implement the menu at the top of the app. The menu should contain some frequently-used commands.
The menu items should be the following (may be changed and/or extended in the future):
This issue contains issues related to the app's statistics on the watched movies and series.
Create views and view models for the home page and possibly stubs for other pages.
Investigate whether ReactiveUI routing would be appropriate for navigation between file views and the home page.
Add code in the main parts of the app to show the home page (App
, MainViewModel
etc.).
This epic contains general issues which don't belong to any specific epic.
There's no need to save and restore the UI state, because ReactiveUI can do it. Also, the UI state shoudn't be part of the preferences.
Add an option to remove display numbers from movie series and continue counting from the previous movie series.
The home page should be able to:
Show a list of recently opened files and have the ability to open these files.
Open any other existing file.
Create a new file.
As a single-instance app, MovieList will be able to open multiple files in the same window.
Implement showing a special episode form when a special episode is selected from a season form. Implement showing an empty form when a new special episode is created.
The form should include:
There should be buttons to navigate back to the series form and to the next/previous season/special episode at the top of the form.
Saving the special episode doesn't actually write it into the database - only saving its series does.
Saving and cancelling changes should be available only when the changes are present. Every field should be validated. The poster should be fetched from the internet and cached by Akavache.
Currently the dialogs in the app don't have title bars, which is not ideal.
Searching movies and series for recommendations will be much easier with tags.
Implement showing a movie series form when a movie series is selected in the list. Also, show it when an 'up' button is clicked on a movie or series that is a part of a movie series.
The form should include:
Saving or cancelling changes must be available only when the changes are presetnt. Every field must be validated. The poster should be fetched from the internet and cached by Akavache.
Preferences should include the following functionality:
Default settings for new files - will be basically same as the file settings UI
Advanced options: logging
When creating a new file, a list of default kinds should be already present in this file. The default kinds should be configurable in the preferneces.
The file settings UI should include the following:
Since the project already exists and has a lot of code in it, the goal is to completely rewrite all of it, because it has become difficult to maintain and to add new features.
The new implementation is going to use ReactiveUI as the MVVM framework, Material Design instead of HandyControl and Dapper instead of Entity Framework Core.
Add settings to individual files:
The name of the list.
Colors for unwatched and not yet released items.
Create the following:
Entities
Database creation script
Currently the app only supports sorting by title while considering the movie series. Other sorting options should be available:
By original title with movie series
By title, ignoring the movie series
By original title, ignoring the movie series
By year
There is currently no way to filter the list or to search for a specific entry. Searching and filtering should be implemented by:
Title or original title (taking all titles into account)
Year (equals, before, after or in range)
Kind
Also, fuzzy searching would be nice.
Implement buttons to add a new movie and a new series, which should be shown on the right side of the app when there are no forms opened. Clicking a button should open an empty form.
Add new movie
Add new series
Implement showing a movie form when a movie is selected in the list.
The form should include:
Saving or cancelling changes must be available only when the changes are presetnt. Every field must be validated. The poster should be fetched from the internet and cached by Akavache.
When an item's name is updated and it's a part of a movie series - or a movie series itself - then all the movie series' items must be updated as well, because they may have to be resorted.
This epic contains issues related to the actual list of movies and series.
Most likely, the preferences will be stored in a user account folder using Akavache.
For now these will include:
The UI state (window location and state).
The list of recently opened files and whether to store the list in the first place.
Logging configuration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.