# Villefort Villefort is a time managment system written in Haskell. ## Version 1.2.2 - Rewrote the weekly sorting by category algorithm so that it actually workds - Fix weekly page error. [default config](https://github.com/Chrisr850/Villefort/blob/master/src/Villefort/Config.hs) # Home screen ![alt text](https://raw.githubusercontent.com/Chrisr850/Villefort/master/data/screen.png) # Add new todos ![alt text](https://raw.githubusercontent.com/Chrisr850/Villefort/master/data/screen01.png) # Stats page ![alt text](https://raw.githubusercontent.com/Chrisr850/Villefort/master/data/screen02.png) # To install 1. Install cabal (https://www.haskell.org/platform/) 2. In terminal or command prompt run `cabal install Villefort`. 3. and then `cabal run Villefort`. 4. You will be able to see the homescreen by typing localhost:3002 into your favorite browser. ## Configure your villefort create a custom main method in ~.villefort/villefort.hs. Below is an example. ```haskell module Main where import Villefort import Villefort.Definitions import System.Random import System.IO.Strict as S main :: IO () main = villefort def { daily = [floss, calendar ], weekly = defWeekly { monday = [more, dailyRef], tuesday = [dailyRef], wednesday = [more, dailyRef], thursday = [dailyRef], friday = [more, scan, dailyRef] }, showDatabase = True } floss = pure ["","floss","wellness"] calendar = pure ["","check calendar","admin"] scan = pure ["scan class notes","scan","admin"] dailyRef = pure ["write a daily reflection on each class","reflect","admin"] more = do z <- S.readFile "/home/chris/.villefort/push" -- readfile to get # push ups let num = read z :: Double writeFile "/home/chris/.villefort/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)) ``` Then run ```Villefort --recompile``` the next time you run villefort it will run with your configuration. The default configuration is located here https://github.com/Chrisr850/Villefort/blob/master/src/Villefort/Config.hs ## 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 mines x86_64-linux-ghc-7.10.3 You should now see different versions of Villefort Villefort-0.1.1.0/ ``` |-- data/ | |-- date | |-- day | |-- todo.db |-- templates/ |-- js.js ``` Villefort-0.1.1.1/ ``` |-- 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. Then remember to rebuild Villefort if you have a custom build. Villefort --recompile