I largely use some church software on my phone - because, you know, its 2018, and I will wait no longer for them to get with the times. My main wish is that the chruch software would deprecate my usability wrapper by having digital systems that go and sin no more. If you are reading this and happen to make church software, for the love of everythng good - please read the use cases below.
Becca is named after an easy way to remember that you can BCC her on regular ol' emails. If you have introduced your self to her before, then she will relentlessly copy/paste your messages as comments into some church system.
I have left some of the language intentionally vague - because I intend to create a pluggable backend - so that you might be able to create your own backend-clicking-service for whatever crappy church or not-church software you have to use... maybe like city council websites, or other things that may be terrible all the way till hell freezes over.
becca@beccamail.org
to the bcc line - Becca processes the mail and makes the neccessary notes in the ChurchDBEverything below this line will be moved to a different document eventually
Human types on a Browser Probably on a Phone --> Becca ---> ChurchDB
registers
with Becca, she associates an owned email address with an ChurchDB user (Since ChurchDB wont tell us the email)Registration
, Becca pre-loads the users class information - and caches it for 24 hrs.uses regular email program & prepopulate BCC:Becca
Leader sent "Jane Doe" a text on: {todaysDate}
Leader sent "Jane Doe" a text on: {todaysDate}
Tag the Comments in ChurchDB
for the emails you are alrady sendingShow you a report
of the number of people you reached out to
Make an email group
I can not send emails (yet) on your behalf for technical reason - but I can make groups for you to copy paste:
Make an Email Group
- Outreach("MissedYouReport")Put the FrontEnd Out there via AWS Amplify ???
ChurchDB messages
were kept local
local storage effect
servicve worker
processing messages too into theremaining sync items
? inside settings or something else with a sync now
buttonindexDB
, or local cache
or whatever...FlushCacheEffect
might just send as many Using:
Add SES Intergration
Put this in S3:
UI could note the age of cache and request refresh on the data?
s3://:bucket/:path/users/:{md5(email, "application string")}.json
TTLdSessionToken:
s3://:bucket/:path/sessionTokens/:{md5(email, "application string")}.json
FailedCredentials:
s3://:bucket/:path/failedCredentials/:{md5(email, "application string")}.json
Users{
email: "___", //PK unique constraint
verify: {
token:"RANDOM DIGITS",
tokenCreateDate: new Date()
isVerified: bool,
},
password:{
factor: 14,
ChurchDBPasswordEncrypted: bcrypt.unlock("___", key(username, salt, 'some fixed app string'))
}
multiClassData:{
cacheCreateDate: new Date(), // application can decide if its worth updating
multiClassRoster: {... from API}
}
}
POST /register.json
in: JSON(user + password)
out:
response: JSON (userToken, TTLdSessionToken + metaData)
setCookie: emailToken TTLdSessionToken
sideEffects:
1. Creates user Data
2. Fetches fresh cache
3. Cache failed attempts to not beat up ChurchDB (24h)
GET / && /myClasses.json
200:
in:
cookie: {userToken sessionToken}
queryParam {userToken, sessionToken}
out: JSON MultiClassData
sideEffects:
1. Runs a Browser Task Against ChurchDB
400:
JSON:(ErrorID, errorMsg)