version 1 done

This commit is contained in:
Stuce 2025-06-07 16:04:51 +01:00
commit 59e14ce390
47 changed files with 9188 additions and 0 deletions

BIN
config/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

73
config/keter.yml Normal file
View file

@ -0,0 +1,73 @@
# After you've edited this file, remove the following line to allow
# `yesod keter` to build your bundle.
#
# Also, please make sure that `port` value on `config/settings.yaml` is set to
# use `PORT` env variable.
user-edited: false
# A Keter app is composed of 1 or more stanzas. The main stanza will define our
# web application. See the Keter documentation for more information on
# available stanzas.
stanzas:
# Your Yesod application.
- type: webapp
# Name of your executable. You are unlikely to need to change this.
# Note that all file paths are relative to the keter.yml file.
#
# The path given is for Stack projects. If you're still using cabal, change
# to
# exec: ../dist/build/sTodo/sTodo
exec: ../dist/bin/sTodo
# Command line options passed to your application.
args: []
hosts:
# You can specify one or more hostnames for your application to respond
# to. The primary hostname will be used for generating your application
# root.
- www.sTodo.com
# Enable to force Keter to redirect to https
# Can be added to any stanza
requires-secure: false
# Static files.
- type: static-files
hosts:
- static.sTodo.com
root: ../static
# Uncomment to turn on directory listings.
# directory-listing: true
# Redirect plain domain name to www.
- type: redirect
hosts:
- sTodo.com
actions:
- host: www.sTodo.com
# secure: false
# port: 80
# Uncomment to switch to a non-permanent redirect.
# status: 303
# Use the following to automatically copy your bundle upon creation via `yesod
# keter`. Uses `scp` internally, so you can set it to a remote destination
# copy-to: user@host:/opt/keter/incoming/
# You can pass arguments to `scp` used above. This example limits bandwidth to
# 1024 Kbit/s and uses port 2222 instead of the default 22
# copy-to-args:
# - "-l 1024"
# - "-P 2222"
# If you would like to have Keter automatically create a PostgreSQL database
# and set appropriate environment variables for it to be discovered, uncomment
# the following line.
# plugins:
# postgres: true

View file

@ -0,0 +1,20 @@
-- By default this file is used by `persistFileWith` in Model.hs (which is imported by Foundation.hs)
-- Syntax for this file here: https://github.com/yesodweb/persistent/blob/master/docs/Persistent-entity-syntax.md
TodolistItem
todolistId TodolistId OnDeleteCascade
value Bool
name Text
Todolist
groupId GroupId OnDeleteCascade
title Text
UniqueListPair groupId title
User
name Text
UniqueName name
Group
group Text
GroupUser
user UserId
group Text
groupId GroupId OnDeleteCascade

1
config/robots.txt Normal file
View file

@ -0,0 +1 @@
User-agent: *

25
config/routes.yesodroutes Normal file
View file

@ -0,0 +1,25 @@
-- By default this file is used by `parseRoutesFile` in Foundation.hs
-- Syntax for this file here: https://www.yesodweb.com/book/routing-and-handlers
/static StaticR Static appStatic
/favicon.ico FaviconR GET
/robots.txt RobotsR GET
/ HomeR GET
/group/#GroupId TodolistR GET
/add AddGroupR POST
/add/group/#GroupId AddTodolistR POST
/group/#GroupId/todolist/#TodolistId TodolistItemsR GET
/add/group/#GroupId/todolist/#TodolistId AddTodolistItemR POST
/check/group/#GroupId/todolist/#TodolistId/#TodolistItemId CheckTodolistItemR POST
/edit/group/#GroupId/todolist/#TodolistId EditTodolistItemsR GET POST
/edit/group/#GroupId EditTodolistR GET POST
/edit EditGroupR GET POST
/delete DeleteGroupR POST
/delete/group/#GroupId DeleteTodolistR POST

40
config/settings.yml Normal file
View file

@ -0,0 +1,40 @@
# Values formatted like "_env:YESOD_ENV_VAR_NAME:default_value" can be overridden by the specified environment variable.
# See https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables
static-dir: "_env:YESOD_STATIC_DIR:static"
host: "_env:YESOD_HOST:*4" # any IPv4 host
port: "_env:YESOD_PORT:3000" # NB: The port `yesod devel` uses is distinct from this value. Set the `yesod devel` port from the command line.
# For `keter` user, enable the follwing line, and comment out previous one.
#port: "_env:PORT:3000" # `keter` uses `PORT` env var name
ip-from-header: "_env:YESOD_IP_FROM_HEADER:false"
# Default behavior: determine the application root from the request headers.
# Uncomment to set an explicit approot
#approot: "_env:YESOD_APPROOT:http://localhost:3000"
# By default, `yesod devel` runs in development, and built executables use
# production settings (see below). To override this, use the following:
#
# development: false
# Optional values with the following production defaults.
# In development, they default to the inverse.
#
# detailed-logging: false
# should-log-all: false
# reload-templates: false
# mutable-static: false
# skip-combining: false
# auth-dummy-login : false
# NB: If you need a numeric value (e.g. 123) to parse as a String, wrap it in single quotes (e.g. "_env:YESOD_PGPASS:'123'")
# See https://github.com/yesodweb/yesod/wiki/Configuration#parsing-numeric-values-as-strings
database:
# See config/test-settings.yml for an override during tests
database: "_env:YESOD_SQLITE_DATABASE:sTodo.sqlite3"
poolsize: "_env:YESOD_SQLITE_POOLSIZE:10"
copyright: Insert copyright statement here
#analytics: UA-YOURCODE

11
config/test-settings.yml Normal file
View file

@ -0,0 +1,11 @@
database:
# NOTE: By design, this setting prevents the SQLITE_DATABASE environment variable
# from affecting test runs, so that we don't accidentally affect the
# production database during testing. If you're not concerned about that and
# would like to have environment variable overrides, you could instead use
# something like:
#
# database: "_env:SQLITE_DATABASE:sTodo_test.sqlite3"
database: sTodo_test.sqlite3
auth-dummy-login: true