Initial boilerplate
This commit is contained in:
commit
519fb49901
7 changed files with 4520 additions and 0 deletions
36
README.md
Normal file
36
README.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# Mascarpone CRM
|
||||
|
||||
I always write "cream cheese" on my grocery list as "crm chs", so that's what
|
||||
I think of when I see "CRM".
|
||||
|
||||
## Planned Features
|
||||
|
||||
* Local contacts
|
||||
* Contacts stored on a remote CardDAV server
|
||||
* Act as CardDAV server for other clients
|
||||
* For each contact:
|
||||
* Name, address as single fields (plus code? lat/long? go crazy!)
|
||||
* Relationship mapping
|
||||
* Birthday reminders
|
||||
* Desired contact periodicity
|
||||
* Last-contact-time mapping
|
||||
* Additional arbitrary fields
|
||||
* Journal with Obsidian-like `[[link]]` syntax
|
||||
* Contact groups (e.g. "Met with `[[Brunch Bunch]]` at the diner")
|
||||
* "Named in journal but has no contact entry" detection
|
||||
* CalDAV server for birthday reminders
|
||||
* Email birthday reminders over SMTP
|
||||
|
||||
## Tech
|
||||
|
||||
axum: fast and scalable, lots of middleware from tower
|
||||
axum-htmx: helpers when dealing with htmx headers
|
||||
axum-login: user auth, has oauth2 and user permissions
|
||||
tower-sessions: save user sessions (Redis, sqlite, memory, etc.)
|
||||
fred: Redis client for user sessions
|
||||
tracing: trace and instrument async logs
|
||||
reqwest: for API calls, oath2
|
||||
anyhow: turn any error into an AppError returning: “Internal Server Error”
|
||||
maud: templating html, can split fragments into functions in a single file (LoB)
|
||||
sqlx: dealing with a database, migrations, reverts
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue