Social Network Kata
Inspired by Sandro Mancuso & Samir Talwar
Your Team is tired of all those boring tasks like bowling game scores, bank accounts, singing songs or commanding mars rovers. This time you want to do something truly innovative: A Social Network!
Your team also decided for this project to not only apply TDD and pair-programming - this time you’re gonna use BDD to cover all important features.
Backlog
- Posting: Alice can publish messages to a personal timeline
- Reading: Bob can view Alice’s timeline
- Following: Charlie can subscribe to Alice’s and Bob’s timelines, and view an aggregated list of all subscriptions
- Mentions: Bob can link to Charlie in a message using “@”
- Links: Alice can link to a clickable web resource in a message
- Direct Messages: Mallory can send a private message to Alice
Lessons Learnt & Practices
- Moq & Testing
- Setup Mocks for asynchronous programming: i.e. for testing console interactions
- Make tests async
- Best Practices
- Visual Studio project setup
- Programming & Design Patterns
- Asynchronous programming patterns
- Libraries & Tools
- Moq
- Autofixture
- Postmap
- ASP.NET Core
- Create a web API with ASP.NET Core
- Scaffold item in order to create infrastructure for edit with APIRest
- Unit test a MVC controller
- Use UseInMemoryDatabase for testing purpose
- Create a Razor Web App
- Scaffold item in order to create infrastructure for edit with Razor pages
- Entity Framework Code first
- Create a db initial migration
- Web Programming
- Http Status Codes
- Usage of Postmap
Resources
ToDo List
- Finalize Web Api
- ...