dupop / audio-reminder Goto Github PK
View Code? Open in Web Editor NEWMinimalistic personal reminder management system fully accessible by on-screen-readers
License: MIT License
Minimalistic personal reminder management system fully accessible by on-screen-readers
License: MIT License
Describe the bug
During attempt to save/delete a reminder in (only in RELEASE build config!) an exception is reported, but the operation is successful.
To Reproduce
Any operation that triggers saving to data storage should be done (e.g. save or delete a reminder).
Expected behavior
N.A.
Screenshots
/
Version
0.2 but was probably present since the program is first deployed through the installer
Additional context
The bug is not present in DEBUG configuration.
Refine this in more detail later.
In AudioReminderUI, on screen ReminderListForm we have method CloneAction() that should be implemented. For this a clone dialog will probably be needed.
This feature would need to be analyzed more before implementing if it will be implemented at all.
Installer should be able to:
NSIS was used.
Until view of reminders in a calendar is created, the ReminderListForm could be simply improved by adding reminder date to the list.
AudioReminderRinger application should be able to play sound. Sound shold be possible to be stopped. when user starts interacting with the form or at least when he presses Snooze/Dismiss buttons. Currently we have Console.Beep() as a placeholder.
See: https://docs.microsoft.com/en-us/dotnet/api/system.media.soundplayer.play?view=netframework-4.8
Related to #7
New button should be added to main screen which opens a form with short user manual.
Link to project website (i.e. to here) and necessary legal information could also be placed there.
If the text is long, maybe it would be good to put it into multiple separate non-editable textboxs (probably easier for navigation then label?).
The manual could also be added to project homepage on GitHub.
When creating a remainder, user should be able to choose a sound of the reminder - probably from a radio button list (with dynamic number of entries).
List should containt value "Default", already selected by default.
Thins can be stored as Noise ID (nullable foreign key) in Reminder Entity
In settings we should have a listbox with sounds, which should probably automatically play when selected. This may be annoying but it is simple accessible by narator.
Synchornization should be analyzed and situations with data races should be reduced.
Special attention should be given to the Audio Reminder Service because it handles input from webservice, and from scheduler.
Audio Reminder UI should be prevented from running with multiple instances to prevent conflicts with parallel data eiditing. Proposed solution global named Mutex. We could bring to front the already existing instance like many other programs do.
It would be good to analyze interaction of webservice threads vs scheduler threads.
If needed persistence could become async.
All projects should have the same, preferably newer version of the Serilog dependency.
Also we should use Rolling File appenders instead of File appender so that we don't get logging overflow.
Product should also provide some kind of updating functionallity - at least a simple way to manually update the product, by giving a link to download a new version.
Reminder name may contain interpunctions or even non ASCII chars, so it is not safe to be used as a command line argument for AudioReminderRinging application. Reminder ID, preferably a GUID string could be used for this purpose.
Multiple instances of main UI could result in stale data on UI and possible conflicts.
It makes using UI more confusing and doesn't bring any additional value to the product.
Reminder should have an option that it doesn't produce a notification. It then just exists in calender and is ignored by reminder scheduler.
Quiet hours feature can also be considered.
Repeat weekly checkbox should be removed because it is redudant and confusing.
Todo:
It should be possible to pause reminder firing, i.e. to have silent mode or do-no-disturb mode.
Even more important from ad hoc do-no-disturb mode would be to have "silent hours", so that reminders and beeps don't ring at night if computer is still active.
Copyright and licencing info in every source file are probabyly not needed (according to google), i.e. the licencing file beside them is enough, but they make things more clear for everyone who copies just a part of the project source files.
When started service can detect that multiple reminders were missed.
Show them all together instead of notifying user 15 times in a row.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Version
Check the program version by clicking Help button in main screen.
Additional context
Add any other context about the problem here.
Translation configs should be implemented to enable non-English user interface in all components of the system.
It should be checked what is the simplest way to accomplish this.
Implement at least one implementation of IReminderScheduler. TImerReminderScheduler is probably simpler than Quartz approach.
ReminderScheduler should be able to trigger ringing and beeps in the moment when they are scheduled.
It should also react to changes in list of reminders, including dismiss of a reminder.
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.