zeronfinity / cpfy Goto Github PK
View Code? Open in Web Editor NEWSee programming contests, get notified and copy contest list as text to share
See programming contests, get notified and copy contest list as text to share
Task: Add user option to filter contests by parameters
This Task will add user option to filter contests by parameters.
May be a button can be placed in top-right of action bar for user to select these parameters.
A full list of available parameters in the API can be found here: https://clist.by/api/v1/doc/#!/contest/contest_list
But not all of them need to be implemented.
Task: Add web view to get clist session id for error 401
This Task will add web view to get clist session id in case of error 401.
Task: Optimize contest JSON fetching and parsing
Currently, the fetching and parsing take a bit of time as all of these are done at once before showing to UI.
This task should split the whole contest list according to some parameter and fetch, parse, show one by one for better user experience.
Optimally, the first few contests should be independent of split size for a quick update of user's firsts view.
Task: Refactor network calls with Retrofit
This Task will convert network calls with Retrofit library.
Separate network layer should be used as abstraction for activities.
For JSON parsing, Moshi may be used.
A refresh functionality to refresh the contest information page will be very useful.
In Notification menu, due to the large number of OJs, "Change All" button seems kind of invisible at the first glance. I think putting the option between the "Notification Priority" label and "OJ List" will be more user friendly.
Task: Add notification functionalities
This Task will add functionality to show contest notification an hour before start time.
Task: Add GitHub Templates
The objective of this task is to add templates for creating GitHub issues and Pull Requests
Task: Add unit tests using junit5
This Task will add unit tests for the first time.
Future work in the project should follow TDD (test driven development) always.
Task: Add Dependency Injection pattern
This Task will add Dependency Injection pattern with the help of Dagger 2
Task: Add contest page open feature upon clicking launch icon
This Task will add contest page open feature upon clicking launch icon (in external browser).
The launch icon is shown in red circle in the following image.
The "time left" is showing negative time if the contest has been ended. "The contest has been ended" message is more appropriate I think.
Task: Fetch images given as links in JSON
This Task will fetch the images linked in JSON to use in contest list view
Task: Fetch all platforms at start of app and always show all platforms in Filter screen
This Task will fetch all platforms at start of app and always show all platforms in Filter screen
"X day(s) after" 's X should be synced automatically with the upper range of End Time.
The actual result is the value of X remains the same. As a result, the contest list won't update correctly.
Currently, the app notifies 1 hour before contest start, with no room for customization
The user is able to add different notification times. Suggested, but not limited to:
A possible implementation is to use 2 spinners.
Task: Replace Dagger with Hilt for dependency injection
This Task will replace Dagger framework with Hilt for dependency injection
Task: Use repository pattern for network call
Currently network call does not use repository pattern, instead gets directly called from viewmodel. This task fixes that.
Task: Fix Lint errors and warnings
This Task will fix Lint errors/warnings as appropriate
Task: Show upcoming contests in initial screen
This Task will show the upcoming contests in main screen, perhaps through some recyclerview
Task: Fetch contest data through CLIST API
This Task will use the JSON API of clist.by to get data of upcoming contests.
Bug: Welcome dialog window not fully visible in small screen height
App version: 1.1.0 (release)
Device model: Poco X3 with MIUI 12.0.5
Screen should be fully visible.
You may write the expected result or add a screenshot.
Ok button is missing in landscape mode
Bug: words get cut off
App version: 1.1.0
Device model: Samsung J720F with Android version 10.0
Some words of top text view of notification page are not clearly visible. Seems like some portion of texts sometimes is stretched to outside of text view boundary. A screenshot is added with underling some words for better understanding
All word should be visible fully to user
Task: Add clipboard functionalities
This Task will add clipboard to copy contest info from app to post in social media like facebook
Task: Refactor code into MVVM pattern and clean architecture
This Task will refactor the code to follow MVVM pattern as well as clean architecture
Task: Add filter functionality to use lower bound as start of current date
This Task will allow user to quickly see/use all contests of a certain day.
Contest list can be empty on some cases. Users might disable all the platforms willingly or by mistake. For that case instead White blank screen, a text like "No contest available. Please select/enable some platforms from filters page " on the center of contest list page make UI more appealing . A button can also be added under the text which will navigate user to filter page.
Currently When contest list is empty, a white blank screen is shown to user.
Feature: Main Screen
This feature will add the initial screen that is shown when app is launched.
The screen should a list of upcoming contests (within a certain interval e.g. next 7 days, sorted according to begin time in ascending order).
Task: Refactor image loading code with Picasso
This Task will add Picasso library to load images more efficiently.
Bug: Contents get cut/hidden
App version: 1.1.0
Full contents of about page is not visible to user in landscape mode. A screenshot is attached for better understanding
User should be able to see all the contents of about page in landscape mode.
Task: Add database persistency for platform functionalities
This Task will add persistency for platform data using database
Feature: Enable/Disable All Notifications Together
A checkbox or button regarding enabling and disabling all OJ's contest notifications will be very helpful.
Task: Fetch images in separate coroutines
This Task will download images in separate threads for optimization purposes
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.