bit-badger / prayertracker Goto Github PK
View Code? Open in Web Editor NEWA free prayer request tracking website
Home Page: https://prayer.bitbadger.solutions
License: MIT License
A free prayer request tracking website
Home Page: https://prayer.bitbadger.solutions
License: MIT License
Make sure users can switch between UI experiences and have their login state preserved. Additionally, make sure "Log Off" in both UIs results in both detecting a non-authenticated experience, and that the "Remember Me" experience works in both.
The current CKEditor instance and Microsoft Edge do not play well together. Check to see if there is an updated version that may work better. Also, determine if there is a good way to detect the failure rather than submitting an empty field, which causes the text to be lost.
Active small groups have well over a thousand requests; when the users review inactive requests, looking for one to update, the page is quite large. Provide a way to paginate results for the request maintenance page (only when inactive requests are shown) and the to-be-developed search page (#2). To do this:
I recently added a new class, and noticed that the "Maintain Members" page showed a table heading even though it gave the message "No Entries to Display". Fix this, and check for other places where table headings may be displayed when a table isn't.
Currently, there is no way to tell when a request was last updated except from the request maintenance page. Provide an option for small groups that will place (as of [date]) at the end of each request, and allow them to select between a long or short date format. It should default to "none", so groups will need to opt-in to see it.
For some reason, this is in the "Other Settings" field group; move it out below it.
.NET Core 2.2 goes end-of-life 23 Dec 19.
The message is:
Please select at least one group for which this user ( ) is authorized
The current authentication scheme in PrayerTracker uses ASP.NET Core authentication with cookies to determine the user's current privileges. Migrate this scheme to utilize JSON Web Tokens (JWTs), This will require:
Authorization: Bearer
and session cookie schemesThis will be targeted for the 7.4 release.
FAKE v5 is very capable, and tooling understands it. Implement it to use for building, testing, and packaging the application. (It may also play more nicely with Appveyor...)
Currently, the online help is built into the program. This means that any changes to the documentation end up causing the system to change, when it should be able to be changed independently.
..and it both used to and should.
PrayerTracker has had its current color scheme for many years. Investigate shades of blue to augment the grays it currently uses, and run an accessibility audit on the result to ensure contrast is appropriate.
The intent for PrayerTracker v8 is to have the SPA version be the default, but still provide the current UI under the /web
subdirectory. For this issue, migrate all current pages to utilize this structure, including a temporary redirect from /
to /web/
.
This will be part of the 7.4 interim release.
Create the Vue UI that will become part of the PrayerTracker v8 release. Also, create the API required to obtain and update data using this UI. This includes creating a way to authenticate via API and receive a JSON Web Token (JWT), and providing that JWT with each request, so that the user's current small group and user IDs can be utilized to record these actions.
Change the domain of the outbound e-mail address from djs-consulting.com to bitbadger.solutions, so it can go through Exchange Online Protection for that domain.
Giraffe supports Short GUIDs in URLs. Change the URLs that have GUIDs in them to use the shorter versions.
There seems to be a difference between requests that show when only active requests are shown, and those shows when inactive requests are included. Either the former is dropping requests, or the latter is not properly identifying expired requests. Ensure that both these tests are using dates only, and not including times in the comparison; I suspect this may be the issue, but I'm not sure which part has it.
.NET 5 was released earlier this week, and brings significant performance benefits. Update this to run in that environment.
.NET 5 is not a long-term-support version, but .NET 6 is. Modify this application to run on .NET 6.
Sample...
+ - We'll be singing "In the Sanctuary" as the call to worship on
Sunday. (as of 5/22/19)
Modify the request process to not include the "-" character if there is not a requestor/subject.
The query that gets all users as members uses a technique that EF Core does not support. Modify this query to use the existing "all users" query, then map the results to members.
.NET Core 3.0 reached end-of-life this week; update to 3.1.
This looks very similar to #17, but in the opposite direction. That issue made the items compare on dates, and the net effect was that the day a request is entered should be 0-day; a request entered on one Sunday (the 1st), with expiration at 14 days, should still be on the list 2 weeks from that day (both the 8th and 15th), but fall off the following Monday (the 16th).
Make the query and the "am I expired?" code match this behavior.
htmx allows responsive web front ends to be built without the complexity of a typical Single Page Application (SPA). Use it for the user interface for version 8.
There are a few minor tweaks in version 8; review the help and make updates as necessary. Also, port the style from #38 to the help site.
The current version of PrayerTracker uses custom code and 3 different cookies to maintain user/group log on state and rolling session activity. Convert this structure to use ASP.NET Core's ClaimsIdentity
with its standard "logged on" cookie; this handles "remember me" and rolling sessions automatically.
v7 already uses NodaTime to convert dates/times from UTC to the small group's local time. When upgrade to v8, we ran into an issue that was exposed by a new version of Npgsql. In researching the text around this, rather than go through and put DateTimeKind
on all the various dates and times, convert these to use NodaTime constructs.
This affects prayer request entered and updated dates, as well as user last seen date/times. Ensure that queries for "current" and "expired" requests take the small group's time zone into account when they query this data.
(This is probably the root of the #22, which itself arose from #17... These implicit conversions have been "bug"ging this project for years.)
This message is a hold-over from when "small groups" were called "classes". The actual message says "This will e-mail the current list to every member of your class, without further prompting." Change this to "group".
Provide the ability to search requests by text; it should match both requestor/subject and text
Set up AppVeyor to automatically run tests when code is committed
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.