Build Accounting Application Using .NET Core, Angular and Entity-Framework

So, in 2016, I was discussing the double-entry accounting rules with one of my friend to understand it better in order to program it in a line of business application. However the accounting part was very small and it was mainly a call to external API or something like that. I had read accounting in my university years as one of the side subject and like most of my other subjects I’ve forgotten most of it.

Couple of years later, I had to work on a similar project but a little bit more accounting domain involved. So with my prior experience and my ninja google skills, I was positive that I would be able to find a good resource to help me put accounting concerns in programming context and to my surprise that was not the case and there was actually much less information or guidance. I saw couple of open-source projects but I had the feeling of missing details and it was difficult to connect the dots.

I then went through materials on accounting basics and revisit my university concepts and with some help from my friends in the accounting domain I was able to put together the needed functionality.

One of my friends spoke with me and I thought of writing a book on this implementation where I can explain and help develop a foundation for accounting applications which can help fill the gap between accounting and programming. I was not sure at that time about this book idea. Accounting itself is very old and well defined subject and everything that could be said about it has been said. It would be like writing another book on dogs. There’s millions of dog books. Same situation with Programming books, there are already a lot of great books about the popular programming technologies.

But as I thought about it some more, I realized that maybe this wasn’t such a bad idea. Double-Entry accounting has found its way into almost every organization and even in this age of the Internet, Cloud data storage and the Internet of Things (IoT), it’s going to be relevant for many years to come because of its utter simplicity and ease of use. So, in this book, I am going to combine both accounting and programming domain and the result will be very good foundation in the form of working application written around accounting domain.

For the purpose of this application, I choose ASP .NET Core for web-api part, Angular for front-end application part and Entity Framework as an ORM for database communication.

So I wrote this book. I describe the technology stack, accounting basics and the techniques which are very reusable in similar kind of line of business applications. I tried to keep it simple and focused and that was a challenge. There is so much on technology-side and same goes on accounting requirements that you can not cover in a single book. There are best practices, separation of concerns and same time take a step by step approach towards problem domain. I had to make balance, so that the material is understandable for a wide variety of readers from beginner to advance and focus is more towards usability of concepts and I also discussed patterns which are repeatable and applicable towards a general set of concerns. No design patterns though, no repository pattern and not much on dependency injection, that was the balance I had to make. Same goes for very basic stuff e.g. what a controller is, what is an API, interpolation syntax in angular or HTTP, I did not write about those basics, as there are already many good resources available about those topics.

Code is simple, explanation is through and I am excited about hearing your thoughts and comments about my attempt of writing this book.

I actually wrote this book during social distancing period in 2020. Writing a book takes a lot of focused concentration. For me, I need to be in a place where that focused concentration is easier and like Sheldon’s spot in big bang theory, I found mine in a peace-full corner of my apartment in Dusseldorf .

You’ll have to tell me if you think the stay-at-home routine affected the content of the book. As an author, I, of course, believe that this is one of the greatest works of literature ever. I wouldn’t be surprised if it becomes required reading in every accounting school in Germany and throughout the world.

The book is, of course, available on Amazon. You can get it here.

Book Highlights

  • Real world applications building techniques.
  • .Net Core, Angular, Entity Framework, PostgreSQL and how to wire-up all these technologies together.
  • Simple, focused and comprehensive coverage of important concepts.
  • Building all software layers in step by step manner with explanation and screenshots.
  • Accounting concepts, domain modeling, persistence and applying accounting rules for transactions validation.
  • How to build master-details UI forms, Get and Post HTTP Request and working with object-graphs of parent-child data.
  • Showcase of combining various technology to build a real world accounting application.
  • Building easy to use user-interface with very nice looking dashboard and charts.
  • Building, Publishing and Deploying .NET Core and Angular Applications.
  • Next steps and architecture and many more….

Accounting Application

Let’s see main parts of the application UI so you get a feeling about the target application we will be building. The detail structure and information about building these components are explained later in the book.

Dashboard
Chart of Accounts
Journal
Master-Details data entry form
Ledger
Trial Balance
Balance Sheet
Income Statement
Company Data-Entry Form
About Section

So, if you are interested in programming line of business applications then this book will provide you that foundation. If you want to learn how the information flows in a typical business application and how you can program it as per custom requirement or if you are interested in programming or accounting in general then you will still find a lot of useful information. Angular skills are reusable regardless of backend technology and domain modeling knowledge is also transferable to other programming environments.

Book Info

Book is available on amazon https://www.amazon.com/dp/B08D8PLN6T