feat: add SQLite database support
- Add sqlite-simple dependency - Create Sis.Database module with openDatabase (creates parent dir, enables WAL + FK) - Add --db-path CLI option (default data/sis.db) - Format all Haskell sources with fourmolu - Fix hlint suggestions in Sis.Server
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
* TODO SQLite database support
|
||||
|
||||
Let's add database support using sqlite-simple . On startup we should
|
||||
create a SQLite database if none exists. Right now we have no tables,
|
||||
but we'll add one in the next task.
|
||||
|
||||
* TODO User signup and login
|
||||
User signup should be basic sign-up. Ask the user their full name,
|
||||
email and password. We'll send them a verification email to confirm
|
||||
their email address and at that point ask for their password. We
|
||||
should use standard encryption approaches for storing their hashed
|
||||
password with the https://hackage.haskell.org/package/password
|
||||
library.
|
||||
|
||||
We should support allowing users to log in and show them a basic
|
||||
welcome page with "Welcome <full name> - <household>" and nothing else once they
|
||||
sign in.
|
||||
|
||||
Otherwise, logged out users should be shown a sign-in form with a link to a separate sign-up form.
|
||||
|
||||
Logged in users should see a log out button, too.
|
||||
|
||||
We should create a rudimentary session infrastructure. Ensure we use http-only cookies for our session token.
|
||||
|
||||
** Households
|
||||
When a user signs up, as part of sign-up we should ask them for the
|
||||
name of their Household. All users will belong a single Household and
|
||||
a Household may have more than one user.
|
||||
|
||||
The Household will ultimately be where tasks/chores are stored.
|
||||
* TODO User invite
|
||||
An existing user should be able to invite a new user by email to their household.
|
||||
|
||||
When the invited user signs up we should not ask them for a Household name but instead make them a member of the Household they were invited to.
|
||||
* TODO Basic chores
|
||||
|
||||
We should create a new table to store chores in the database. Each chore belongs to a household, has a name and an optional assigned-to user.
|
||||
|
||||
We should allow users to create a new chore and view their existing chores.
|
||||
|
||||
When creating a chore we should ask users for the chore name and an optional user to assign to that chore.
|
||||
|
||||
* TODO Chore schedules
|
||||
|
||||
TBD
|
||||
Reference in New Issue
Block a user