https://github.com/bilelmsekni/alfred
Work in progress
https://github.com/bilelmsekni/alfred
appveyor autofixture bogus coveralls domain-driven-design fluentassertions fluentvalidation owin paket serilog sonar swagger-ui webapi-2
Last synced: about 1 month ago
JSON representation
Work in progress
- Host: GitHub
- URL: https://github.com/bilelmsekni/alfred
- Owner: bilelmsekni
- License: apache-2.0
- Created: 2016-06-01T18:28:07.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-06-23T09:34:50.000Z (almost 7 years ago)
- Last Synced: 2025-03-17T03:11:21.687Z (about 2 months ago)
- Topics: appveyor, autofixture, bogus, coveralls, domain-driven-design, fluentassertions, fluentvalidation, owin, paket, serilog, sonar, swagger-ui, webapi-2
- Language: C#
- Size: 407 KB
- Stars: 2
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Alfred
[](https://ci.appveyor.com/project/mseknibilel/alfred)
[](https://coveralls.io/github/mseknibilel/Alfred?branch=master)
[](http://sourcebrowser.io/Browse/mseknibilel/Alfred)
[](https://sonarqube.com/dashboard/index/1191532)Notice
-----------------Alfred is currently being migrated to Asp.Net Core with .Net Core as a target. Deployment on docker linux containers is soon.
I'll keep you posted with the latest changes.
Presentation
-----------------Alfred is a community managing application. Its purpose is to facilitate the tasks of planning and monitoring the work of a group of people. It also comes with additional features inspired from the agile world such as displaying backlog, settings goals and reporting KPIs
Solution Details
-----------------> This repo contains the backend part of Alfred. If you are looking for the frontend, you can find it here https://github.com/mseknibilel/Alfred.GUI
* Alfred API overview

### Quick start
**Make sure you installed visual studio and added paket for Visual studio extension**```bash
# clone the repo
git clone https://github.com/mseknibilel/Alfred.GUI.git# Build solution (this will take a while as it needs to download dependencies)
Build > Build Solution
```### Solution Structure
I used Domain Driven Design in my project. It seperates code to different layers and prevents it from leaking. On the other hand, it is time consuming because it needs writing a lot of code compared to other approaches. Here's how it looks:
1. **Alfred.WebApi**: WebApi project to expose Alfred services using REST
2. **Alfred.IoC**: IoC configuration has its own project for the sake of clarity and Dll referencing optimization
3. **Alfred.Dal.Implementation.Fake**: An implementation of Data Access Layer using in memory data provided by Bogus
4. **Alfred.Dal**: The required abstraction of the Data Access Layer by the domain layer
5. **Alfred.Domain**: The concrete implementation of Alfred's domain layer
6. **Alfred**: The abstraction of Alfred's domain layer
7. **Alfred.Shared**: Because no matter what, we always have common extension methods, enums, ... but NO LOGIC !
- **Alfred.Logging**: Provides logging features
- **Alfred.Configuration**: Provides configuration features
Next steps
-----------------1. Add more features to support score
2. Develop a proper DAL implementation
3. .Net core migration