Skip to content

mariuszkapcia/project-management-app

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
app
 
 
bin
 
 
 
 
 
 
db
 
 
 
 
log
 
 
 
 
 
 
tmp
 
 
ui
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

#TopSecretDDDProject

Simple application for managing projects. The main purpose is to show how to apply Domain-driven design, CQRS, and Event Sourcing techniques in a real project.

Available features:

  • Add a new developer.
  • Add a new project.
  • Estimate the project.
  • Assign deadline to the project.
  • Assign developers to the project.
  • Assign weekly working hours for each developer in the project.
  • See approximate date of finishing the project.
  • Send project kickoff notification when deadline and estimation are provided.

Live demo available here.

Feature branches:

  • [feature/event-versioning] Sample implementation of event upcaster as RES mapper. To make this possible I needed to introduce ComposedMapper. Thanks to that I'm able to pass list of mappers to the RES client.
  • [feature/gdpr-event-encryption] Sample implementation of GDPR in event sourced system. Sensitive data is encrypted with EncryptionMapper from RES.
  • [feature/command-sourcing] Sample implementation of command sourcing pattern. Commands are stored in simple CommandStore and there is a rake task for replaying the whole system from commands.

Ruby version

2.5.0

Configuration

Install gems

bundle install --path vendor/bundle

Setup database

bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:seed

How to run the test suite

bundle exec rspec spec

About

Domain-driven design, CQRS, and Event Sourcing demo application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published