Publication Management System
Demo Video
Quick start
What you need?
- Visual Studio 2013 or newer
- PostgreSQL 9.3 or newer
Configure database
There are must be database named 'PMS' with owner 'postgres' whose password 'postgres'
-
Execute
psql -U postgres -d PMS -a -f setup.sql -
Execute
psql -U postgres -d PMS -a -f data.sql
Run app
Run throught Visual Studio
- Open project solution Project_DMD.sln
- Build project(it should install needed Nuget packages)
- Start app
Run on local II Server(Advanced)
Look tutorial here
System Design and Architecture
Firstly, we implemented interfaces for working with fake data which stores in memory and uses LINQ for manipulation with data. Using this ‘fake’ interfaces we could develop front-end despite of that we don’t work with db. In parallel with front-end we implemented interfaces for working with ‘true’ data in database.
Controllers handle requests and calls methods of IDataRepository and IUserRepository interfaces. For developing front-end we used fake repositories(FakeDataRepository, FakeAppUserRepository) which works with data in CPU and uses LINQ to operate with data. In same time we were implementing true repositories(DataRepository, AppUserRepository) they call QueryExecutor which executes hand-written and auto generated sql queries. For simple models we didn't write queries, we developed AutoSqlGenerator for that case.
