Need help with CardManagement?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

atsapura
468 Stars 38 Forks 59 Commits 0 Opened issues

Services available

!
?

Need anything else?

Contributors list

# 262,988
F#
54 commits
# 573,354
F#
2 commits
# 25,616
React
.NET
f-sharp
webpack...
1 commit
# 2,328
Shell
cpp11
test-fr...
github-...
1 commit

Card Management

Why?

This is a "real world" example application, written entirely in F#. The goal is to create a best practice for building applications or at least give a reasonable manual to design one.

Summary

It's a very simple bank application.

Here you can - Create/Read users - Create/Read cards for those users - Set daily limits for cards - Top up balance - Process payments (according to your current balance, daily limit and today's spendings)

Tech

To run this thing you'll need: - .NET Core 2.2+ - Docker - Visual Studio 2017+ or VS Code with Ionide plugin or Rider with F# plugin

Database here is MongoDb, hosted in docker container. So you just have to navigate to

docker
folder and run
docker-compose up
. That's it.

For web api

Giraffe
framework is used. You can also play with it using
CardManagement.Console
project.

Project overview

There are several projects in this solution, in order of referencing:

  • CardManagement.Common. Self explanatory, I guess.
  • CardManagement. This is a business logic project, a core of this application. Domain types, actions and composition root for this layer
  • CardManagement.Data. Data access layer. Contains entities, db interaction functions and composition root for this layer.
  • CardManagement.Infrastructure. In here you'll find a global composition root, logging, app configuration functions.
  • CardManagement.Console/CardManagement.Api. Entry point for using global composition root from infrastructure.

Detailed description

Here's long and boring explanation of why anyone would even bother to use F# for web api and tips on how to do it in such a way so you don't blow your head off.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.