Commit Code cleanup
- The applications have been cleaned and optimized.
- A stateless widget has been applied to handle widgets.
- One of the faulty tests has been fixed.
- Unnecessary records have been removed.
Commit Change deafoult Flavor to production Nov 14, 2023, 2:39 PM
Commit Add an application preview to the documentation Nov 14, 2023, 1:28 PM
App.Review.mp4
Commit Add custom snackbars for Flavors Nov 14, 2023, 12:27 PM
- A custom snackbar has been added to the application, which is displayed after adding a task
Nagrywanie.2023-11-14.121210.mp4
- For the production flavor, a snackbar has been added that prevents the removal of tasks from the list. This functionality is only enabled for the development flavor.
Nagrywanie.2023-11-14.121352.mp4
Nagrywanie.2023-11-14.121547.mp4
Commit Add app icon Nov 14, 2023, 8:23 AM
Commit Move MyApp class to app.dart Nov 14, 2023, 7:57 AM
Commit Test Coverage Nov 13, 2023, 11:24 AM
After conscientiously creating tests for the application, my focus shifted towards establishing thorough "test coverage." This metric measures the percentage of the source code covered by unit tests. Its significance lies in its ability to identify sections of untested code and evaluate the overall quality and stability of the application.
Exciting news! Project has successfully achieved a flawless 100% test coverage
. This milestone underscores my dedication to producing a resilient and top-tier software product.
Commit Add new DeadlineRepository tests Nov 13, 2023, 10:59 AM
- Test 1: Retrieving a stream of DeadlineItems.
- Verifies that the
getDeadlineData
function returns a stream of DeadlineItems when valid data is provided.
- Test 1: Calling addDeadline once with provided parameters.
- Ensures that the
add
function callsaddDeadline
on the remote data source once with the provided parameters. - Test 2: Throwing exception if addDeadline on remote data source throws.
- Verifies that the
add
function throws an exception ifaddDeadline
on the remote data source throws.
- Test 1: Calling setAsDone with ID once.
- Ensures that the
setAsDone
function callssetAsDone
with the provided ID once.
- Test 1: Retrieving a list of DeadlineItems.
- Verifies that the
filterItems
function returns a list of DeadlineItems when valid data is provided.
- Test 1: Calling delete() with ID once.
- Ensures that the
remove
function callsdelete
with the provided ID once.
Commit Add new HomeCubit tests Nov 13, 2023, 10:07 AM
- Test 1: Checking the loading and success states with valid deadline items.
- Verifies that the
getDeadlineItems
function emits loading and success states when valid deadline items are fetched. - Test 2: Checking the loading and error states when an error occurs during fetching.
- Ensures that the
getDeadlineItems
function emits loading and error states when an error occurs during the fetch operation.
- Test 1: Checking the return of deadlines when no keyword is entered.
- Verifies that the
filterItems
function returns all deadlines when no keyword is provided. - Test 2: Checking the return of filtered deadlines when a keyword is entered.
- Ensures that the
filterItems
function returns the correct filtered deadlines when a keyword is provided. - Test 3: Checking the return of filtered deadlines when no items match the keyword.
- Verifies that the
filterItems
function returns an empty list when no deadlines match the provided keyword.
- Test 1: Checking the correct removal of an element from the list.
- Ensures that the
remove
function removes the specified deadline from the list.
- Test 1: Checking the success status after calling the
setAsDone
method. - Verifies that thetoggleCheckBox
function emits a success status after successfully calling thesetAsDone
method.
Commit Implement getIt in add page Nov 11, 2023, 3:54 PM
Commit Test PodcasterRepository Nov 11, 2023, 2:40 PM
- Checking if the remoteDataSource.getPodcasterData() method is called.
- Checking the return of the list of podcasters.
Commit Test PodcasterModel Nov 11, 2023, 2:26 PM
- Checking if the provided map supplies the desired PodcasterModel.
- Verifies that the expected PodcasterModel is correctly created from the provided map.
Commit Test PodcastersCubit Nov 11, 2023, 2:06 PM
- Checking the method call to getPodcasterModel() once at the start.
- Checking the successful emission of Status.loading followed by Status.success with results.
- Checking the emission of Status.loading followed by Status.error with an error message.
Commit Test AddCubit Nov 11, 2023, 12:17 PM
- Successful addition, returning Status.success after adding a deadline.
- Unsuccessful addition, returning Status.error and the appropriate error message after a failed attempt to add a deadline.
Commit Test DeadlineModel Nov 11, 2023, 11:28 AM
- Verify that the constructor creates a DeadlineItem with correct data.
- Confirm that serialized data matches expectations.
- Check if default values are set correctly.
- Ensure the daysLeft method returns the correct number of days.
- Check if the deadlineDateFormatted method returns a correctly formatted date.
- Test serialization/deserialization with TimeStampSerializer.
- Confirm that fromJson converts a timestamp to DateTime.
- Confirm that toJson converts DateTime to a timestamp.
Commit Update ArtistModel Tests Nov 11, 2023, 10:31 AM
Commit Test DeadlineRepository Nov 11, 2023, 10:26 AM
- Checking the correct list of deadlines is returned
Commit Test HomeCubit Nov 11, 2023, 9:41 AM
- Checking the return of deadlines when no keyword is entered.
- Checking the return of filtered deadlines when a keyword is entered.
- Checking the return of filtered deadlines when no items match the keyword.
- Checking the correct removal of an element from the list.
- Checking the success status after calling the setAsDone method.
Commit Standardize error handling Nov 11, 2023, 9:27 AM
Commit Add podcasters section Nov 10, 2023, 1:38 PM
Users can now confidently discover which of their favorites have made it to the top rankings and explore details about other creators. Within the application, they can access biographies, top songs/podcasts, and titles for each artist. Additionally, visually appealing graphics are showcased throughout the application for a more immersive experience!
Nagrywanie.2023-11-10.133609.mp4
Commit Update the graphics database in the application Nov 10, 2023, 12:34 PM
Previous graphics have been removed and replaced with better-looking and more relevant graphics generated by AI
Within the artist model, a recent addition includes the introduction of the 'coverNumber' variable, serving the purpose of presenting the fitting album cover for each record
New graphics have been introduced for podcast screens, hinting at the upcoming launch of this section later today
Commit Remove the reference to remoteDataSource from Cubit for the remove method Nov 9, 2023, 6:37 PM
Commit Wrap deadlines in generators Nov 9, 2023, 4:59 PM
To the home/deadlines part, the following features have been added: freezed, json serializable and injectable
Commit Add flavors Nov 9, 2023, 9:59 AM
A new file, 'main_production.dart,' has been created, which is invoked when the production version is launched
Regardless of the chosen flavor, we have also implemented a hardcoded link to the API server for different application flavors. If necessary, these links can be modified in one central location, ensuring the correct functioning of the entire application
Commit Improve the functionality of the daysLeft() function Nov 8, 2023, 7:26 PM
Commit Optimize the performance of the 'remove' method Nov 8, 2023, 7:16 PM
Commit Fix searchBar in DeadlinePage Nov 8, 2023, 5:43 PM
Commit Add real-time checkbox toggler Nov 8, 2023, 5:28 PM
Commit Move the method of adding tasks to data source Nov 8, 2023, 5:00 PM
The method for adding a new task to the Firebase database has been moved to the deadline data source file
Commit Pop-up add page screen after saving Nov 7, 2023, 3:03 PM
Commit Change the date display format Nov 7, 2023, 2:51 PM
Commit Change the color palette of the date picker Nov 7, 2023, 2:45 PM
Commit Add Add Page Nov 7, 2023, 2:19 PM
The ability to confirm adding a task is only possible when both a deadline date and a task have been provided. In that case, the check icon button changes color and becomes clickable
Nagrywanie.2023-11-07.140944.mp4
Commit Add Dismissible to the deadlines Nov 7, 2023, 10:59 AM
It is linked to the "remove" function, which communicates with the Firebase database and immediately removes the corresponding item from the list
An interesting aspect is that the task is only deleted when it is swiped to the left; otherwise, it won't work
In the background, on the left side of the screen, a trash can icon appears to indicate that this action will result in the removal of the task from the list
Nagrywanie.2023-11-07.105621.mp4
Commit Integrate the application with Firebase to display deadlines Nov 6, 2023, 5:39 PM
The application retrieves them in real-time using StreamSubscription, and a newly created deadline data source operates on a stream
Commit Test ArtistCubit Nov 6, 2023, 2:25 PM
2. Confirming that the getArtistModel method emits the correct states when there is a success or error scenario.
Commit Test the getArtistModel method in the artists repository Nov 6, 2023, 1:16 PM
Their role is to confirm the proper operation of the getArtistModel method. These tests aim to ensure that the method is invoked correctly and that it returns the expected list of artists
These tests need to work offline to ensure consistent results, so an expectedArtists list was created, containing mock data that is used in the test
In the code, you can also notice a separation into three parts. This ensures that in the first part of the test, we provide the appropriate data, in the second part, we call the method we want to test, and in the third part, we use expect to make assertions
Commit Test ArtistModel .fromJson method Nov 6, 2023, 12:59 PM
Commit Create a complete project documentation Nov 5, 2023, 4:07 PM
Commit Implement auto registering for injectable Oct 30, 2023, 8:36 PM
Commit Add field rename to remove @jsonkey's from code Oct 30, 2023, 8:29 PM
Field rename has been added to the project. Due to its design, it automatically converts parameters in the factory constructor
Commit Implement injectable (auto get_it) Oct 30, 2023, 8:14 PM
Commit Implement get_it Oct 30, 2023, 7:51PM
References to Dio, repository, and data source have been removed from the ArtistPage (UI part of the application)
Commit Add Retrofit Oct 30, 2023, 7:21 PM
Retrofit is a file generator for Dio. In the next commit, references to Dio from the UI layer of the application will be removed
Commit Implement freezed to the project Oct 30, 2023, 6:59 PM
Commit Add Json Serailizable Oct 30, 2023, 2:19 PM
Json Serializable has been added to the project. It allows for the automatic generation of the .fromJson() method.
Nagrywanie.2023-10-30.141519.-.Trim.mp4
Commit Add Dio handling errors Oct 29, 2023, 6:46 PM
Commit Create ArtistsRemoteDioDataSource Oct 29, 2023, 6:41 PM
Commit Convert Bloc Listener and Bloc Builder to Bloc Consumer Oct 29, 2023, 6:21 PM
Commit Implement handling error to artist page Oct 29, 2023, 6:14 PM
Commit Display data using .fromJson method Oct 29, 2023, 11:38 AM
Commit Improve artists details page look Oct 27, 2023, 4:43 PM
The best songs of the artists, their sample album covers (generated by AI), and the number of views for the songs have been provided for each of the screens
Nagrywanie.2023-10-27.163744.mp4
Commit Create a suffix to optimize the display of 'day(s) left' in the DeadlineItemWidget Oct 27, 2023, 12:04 AM
In the main screen of the application, a suffix has been added to improve code readability. It is responsible for displaying an appropriate phrase related to the remaining days to complete a task from the list.
Commit Improve the display of deadlines Oct 27, 2023, 11:47 AM
Commit Implement prototype of artist details page Oct 27, 2023, 11:11 AM
Commit Add a new model to the ArtistModel Oct 27, 2023, 11:04 AM
Commit Add artists details page Oct 26, 2023, 10:38 PM
An artist details page has been added to the project, which will store more information about the listed artist in the future
Using the onTap parameter in InkWell, clicking on an artist will navigate us to the artist details page screen
Commit Add navigation to the main page in drawer Oct 25, 2023, 10:32 PM
Commit Improve artists page look Oct 25, 2023, 10:21 PM
Nagrywanie.2023-10-25.221735.mp4
Commit Add AI-generated images to the project Oct 25, 2023, 10:16 PM
Commit Create artist page prototype Oct 25, 2023, 6:12 PM
The screen is divided into parts - there's a header, a search bar, and a list of containers where rankings are entered (each window represents one artist)
Commit Create mocked data source and convert model to models list Oct 25, 2023, 4:17 PM
Commit Create artist repository Oct 25, 2023, 3:17 PM
Using the getArtistItems function, elements from the artistmodel are passed to Cubit, and then they are displayed on the artist page
Commit Create artist model Oct 25, 2023, 3:06 PM
This model is integrated into the Cubic system. More specifically, this model is used within the "getArtistItems" function, where particular author is assigned to the model
Commit Build BLoC for articles page Oct 25, 2023, 12:52 PM
Commit Display sample data on the artist page Oct 25, 2023, 12:01 PM
Commit Handle errors in home with switch Oct 25, 2023, 11:30 AM
Nagrywanie.2023-10-25.105756.mp4
Commit Add enums Oct 25, 2023, 11:23 AM
Commit Fix transparent searchbox background Oct 25, 2023, 9:41 AM
The semi-transparent tile color on the homepage behind the search bar has been concealed by a container using a stack
The issue was with the widgets in a ListView that extended beyond the expanded area. They have been covered by a container and are now invisible
Commit Integrate BLoC with main app view Oct 25, 2023, 6:41 AM
The block has been integrated into the main application view (including the item filtering function and task completion value modification)
Commit Connect repository and home page through BLoC Oct 24, 2023, 8:37 AM
Commit Implement BLoC Oct 24, 2023, 8:08 AM
Commit Add deadline repository Oct 24, 2023, 7:37 AM
Commit Implement Flutterfire UI Oct 21, 2023, 7:34 PM
Commit Organize files Oct 21, 2023, 6:24 PM
Commit Add podcasters and artists page Oct 20, 2023, 8:16 PM
Commit Improve drawer's look Oct 20, 2023, 7:45 PM
Commit Add navigation drawer to home page Oct 20, 2023, 11:55 AM
Commit Add searchbox functionality Oct 19, 2023, 7:25 PM
Commit Add checkboxes functionality Oct 19, 2023, 6:24 PM
After clicking the container, the text gets crossed out, and the checkbox fills in - this only works within the application; the code in the model and isChecked do not change. After refreshing the emulator, we return to the initial state - this will be fixed with the implementation of Firebase in the project.
Commit Install firebase core Oct 19, 2023, 1:13 PM
Commit Create deadline model Oct 19, 2023, 12:08 AM
Commit Implement search box Oct 19, 2023, 10:20 AM
Commit Add a function checking if the number of days is singular Oct 19, 2023, 10:05 AM
The deadlines have been equipped with a function to check whether the number of remaining days until the deadline is singular or plural, allowing for the display of "day(s) left" in the appropriate format.
Commit Improve home_page look Oct 18, 2023, 2:54 PM
Commit Add home_page Oct 17, 2023, 8:31 PM
=== Changes === Initialize project Oct 17, 2023, 08:06 PM
RatingProject is a project that fulfills one of my deepest dreams. It represents my approach to creating an application from scratch and, at the same time, provides an excellent opportunity to showcase my programming skills.
This application will evolve as the project progresses, fully demonstrating the extent of my capabilities. One of its main components will be the "Deadlines" screen, which will serve as a preview, allowing users to peek into the future and discover what's coming next for the application in the following weeks. The deadlines accompanying these previews will serve as evidence of my commitment and diligence in working on the project, always ensuring the timely delivery of solutions.
What exactly will this application be? My goal is to explore all the possibilities offered by Flutter and create complex and appealing screens. I plan to create a "To-Do List" module, which will not only help users organize their tasks but also provide a preview of what's coming soon in the application.
Additionally, the project will include a module that fetches data from an external REST API. This module will introduce users to two exciting categories: "Artists" and "Podcasters." Each of these categories will take them into the world of the top 5 artists or podcasters in the current rankings. Users will be able to discover their episodes, music tracks, podcasts, and learn more about each of them through available details.
It's worth noting that the database used by the application is not real but generated by advanced artificial intelligence. These data will then be converted into JSON format and implemented in the application, creating an attractive and dynamic interface.
An essential part of the project will be the user login module. Initially, I will use a ready-made module from Firebase, but my long-term goal is to create a unique module tailored specifically to the needs of this application, showcasing my skills in authentication and user data management.
All of these elements together paint a complete picture of the RatingProject, which is both a personal challenge for me and proof of my skills in the field of advanced mobile application development.
From time to time, there will be updates in this document to reflect what has changed in the application.