Public Repository

Last pushed: a year ago
Short Description
Docker container for lou server to be hosted in QA environment
Full Description

LOU {zero to hero}

Latest Azure API Deployment

Lou is a reference solution used as an instructional tool for budding software engineers.
The intention is to exhibit best practices and proper scaffolding for a operational software solution.
The product being erected is an mobile device accessible exercise tracking system.

Version is 0.10

There is a Mobile Solution written to communicate with this API.
It is maintained in a seperate repository:

Lou Mobile Solution

Solution Components

  • .NET Core [C#] = RESTful API + Business Logic + Data Access
  • MongoDB [json] = Database
  • MSTest [C#] = Testing framework [Automated on CI builds]
  • ApacheBench [bash] = Load testing framework [Automated on CI builds]
  • BDDfy [C#] = Behavior Driven Design Framework for Detailing supported User Stories & Scenarios
  • DocFx [json/yml/md] = Code Documentation Generator
  • Swashbuckle.Swagger [C#] = REST API interactive console from Code Comments
  • Bitbucket [Git] = Source Control Code Repository
  • Bitbucket Pipelines [yml/bash] = Build Conductor for Continuous Build & Continuous Test
  • Docker = Software Container Platform [Utilized for CI builds]
  • Docker Hub = Container repository for Continuous Delivery and Continuous Deployment
  • Azure = Cloud hosting of Solution [Docker Images]
  • Debian [Linux] = Operating System in Docker containers

Solution Breakdown

Solution is broken into 3 main folders:

  1. src = source code projects
  2. tst = integration & unit test projects
  3. doc = documentation

Docker Image for CI Builds (maintained by this team)

Docker CI Build Image

How do I start MongoDB on my development environment for testing?

Step One: Install MongoDB Community edition for your operating system locally

Open command prompt and navigate to the mongod.exe folder (e.g. "C:\Program Files\MongoDB\Server\3.4\bin") and run:

mongod --dbpath C:\MongoDBs --port 27017

This will start your MongoDB server listening on port 27017 (i.e. mongodb://localhost:27017)

How do I run the source locally?

Open command prompt and navigate to the src/Lou.Web folder and run:

dotnet run

This will start your web site running and it should say what port it's running on: "Now listening on: http://localhost:5000"

How do I get to the Swagger UI REST Console locally?


#####Test JSON for Posting a new workout:

"userId": "11111111-1111-1111-1111-111111111111",
"name": "Morning Routine",
"instructor": "Tony Horton",
"notes": "easy peasy, lemon squeezy",
"exercises": [
"id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
"name" : "Situps",
"repetitions" : 25,
"description" : "Situp Description"
"completed": "2016-11-30T12:40:19.688Z"

How do I generate my documentation using docFx?

To generate the metadata open command prompt and navigate to the "doc" folder and run:

docfx metadata

This generates all the yml files in the api folder from the code comments. Then run:

docfx build

This makes the "_site" folder in the "doc" folder. Then run:

docfx serve _site

This hosts the site on http://localhost:8080

How do I run the mstest tests and generate the User Stories & Scenarios report from BDDfy?

To run the tests and generate the BDDfy.html open command prompt and navigate to the "lou" folder and run:

dotnet test tst/Lou.Web.Test/

This creates the BDDfy.html in the lou\tst\Lou.Web.Test\bin\Debug\netcoreapp1.0 folder


Contribution guidelines

  • Writing tests
  • Code review
  • Other guidelines

Who do I talk to?

Michael Miller
Docker Pull Command