Sample Timesheets application built with .NET Core, F#, Fable, Feliz, Bulma, Font Awesome.
This template can be used to generate a full-stack web application using the SAFE Stack. It was created using the dotnet SAFE Template. If you want to learn more about the template why not start with the quick start guide?
You'll need to install the following pre-requisites in order to build SAFE applications
- The .NET Core SDK 3.1 or higher.
- npm package manager.
- Node LTS.
Start the server:
cd src\Server\
dotnet run
Start the client:
npm install
npm run start
Open a browser to http://localhost:8080
to view the site.
If you want to know more about the full Azure Stack and all of its components (including Azure) visit the official SAFE documentation.
You will find more documentation about the used F# components at the following places:
Learning resources I used to build this application:
- F# language, in particular F# for fun & profit.
- The Elmish Book.
Also includes:
- French public holidays
- Page navigation with Feliz.Router (inspired from Routing And Navigation chapter).
- SQLite database using F# Dapper.
- Bulma CSS and Font Awesome icons.
- Expecto unit tests.
- Domain constrained types (
SafeDate
,Week
, etc.) - Constrained types also used in DTO with type handlers.
- Need to round date intervals because Javascript date intervals are impacted by daylight saving time.
- Ensure a user always belong to a team.
- Ensure consistent Activity work days for months (no activity should overlap between two months).
- Add UI tests with canopy.
- Use Fable.Mocha unit tests for Javascript.