Villefort
Villefort is a time management system written in Haskell.
Version 1.2.14
- Rewrote scheduling functions so that monthly and yearly task run now.
- Cleaned up significant portions of code base.
default config
Home screen

Add new todos

Stats page

To install
- Install cabal (https://www.haskell.org/platform/)
- In terminal or command prompt run
cabal install Villefort
.
- and then
cabal run Villefort
.
- You will be able to see the home screen by typing localhost:3002 into your favorite browser.
create a custom main method in ~.villefort/villefort.hs. Below is an example.
module Main where
import Villefort.Server
import Villefort.Config
import Villefort.Definitions
import System.Random
import System.IO.Strict as S
main :: IO ()
main = villefort def {
daily = [calendar ],
weekly = defWeekly {
monday = [push],
wednesday = [push],
friday = [push,
scan]
}
}
-- description, heading, subject
calendar = pure ["","check calendar","admin"]
scan = pure ["scan notes","scan","admin"]
-- | generate increasing sets of push ups
push = do
rawNum <- S.readFile "push" -- readfile to get # push ups
let num = read rawNum :: Double
writeFile "push" (show (num+0.3))
sets <- pushUps num
return $ [show sets,"push ups","fit"]
pushUps level = do
dubs <- mapM gen $ replicate 5 level :: IO [Double]
return $ map floor dubs
where gen x = randomRIO (x-(x/3),x+(x/3))
Use Villefort --recompile
to recompile Villefort with your custom config. Recompilation requires ghc to be in your $PATH.
The next time you run villefort it will run with your custom config. The default Config is found in Villefort.Config.
How to copy data between versions of Villefort.
- Install the new version through cabal.
- Navigate to ~/.cabal .
- Navigate to share/ .
- Navigate into your architecture folder mine is x86_64-linux-ghc-7.10.3.
- You should now see different versions of Villefort.
Villefort-0.1.2.12/
|-- data/
| |-- date
| |-- day
| |-- todo.db
|-- templates/
|-- js.js
Villefort-0.1.2.13/
|-- data/
| |-- date
| |-- day
| |-- todo.db
|-- templates/
|-- js.js
Just copy the data/todo.db from the old version into data/todo.db of the new version.
Remember to rebuild Villefort so that your custom build uses the new version of Villefort.
Villefort --recompile