2 users have completed this project
Introduction
The C# Academy's curriculum is based on relatively small projects. The principle behind this is to prevent students getting caught up in large endeavours that might take months to complete and that most of the time, at least in our experience, lead to frustration.
With that in mind, we also believe that it is important to build a comprehensive piece. Something that will challenge your knowledge. A project with a 'wow' factor that will truly impress prospective employers. Not only it looks great in your portfolio, but having a unique project that you're truly passionate about is a great feeling. A feeling that keeps you motivated to keep going, knowing you're building something amazing.
When planning for this project, try to think outside of the box. Think of something that you haven't seen before. Who knows if this might turn into a business idea? However, you don't necessarily need to build something that hasn't been built before. Do you love languages and want to build a Duolingo-like app? Perfectly fine! As long as you add your own twists to it. Do you love movies, or finance or sports, and want to built an app similar to ones you've seen in this area? Go for it! Your unique take on this subject might create something amazing based on an existing idea.
Shoot for the moon! Even if you don't hit it, you might reach very high 🤓
Requirements
-
Your project needs to contain a Readme with an overview of the system, justification of your choices and instructions on how to run the application. An initial PR needs to be created with this document and a diagram file (the format is up to you). This PR is a requirement to achieve Grey Belt.
-
You need to build a full-stack web app with front-end, back-end and database. You can choose any front-end technology, but the back end has to be .NET/C#.
-
If you have an amazing idea that doesn't require a front-end, let us know so we can assess it.
-
Authorization/authentication, including at least one external provider.
-
Interaction with an external api. If you don't find a free API that suits your idea, create one and seed the data
-
You need to use at least two Azure Functions.
-
Your project will be thoroughly tested. Make sure errors are handled properly.
-
Logging and monitoring capabilities. You can choose a service of your choice.
-
You need to deploy your solution to Azure and produce a link to the website.
Tips
-
Check out this Systems Design For Beginners Tutorial to have an idea of the thought processes when creating a large application. And Mocking Diagrams with Excalidraw for a cool diagram-designing tool.
-
We usually recommend you don't work in more than one project at a time. Since this is a comprehensive undertaking, you can work on it in parallel with the rest of the curriculum. This will be specially useful when you get stuck, as you can jump between projects to get some fresh air 😊
Challenges
-
Since this is your own idea, it won't have specific challenges. However when your first submit your code you'll be given four challenge ideas, worth 50XP each. Completion of those will take your points to a total of 500XP, as a recognition for your efforts.
-
If you loved the experience of building a comprehensive project, and have lots of great ideas, you can do it again! This project will be open for completion as many times as you want.
Planning
Before starting your project, you'll have a planning phase. You'll create a pull-request in the project's repository outlining what your app is, what features it will have and detail your tech stack. It needs to include diagrams of your database models and outline what problems you're trying to solve. Submitting this initial pull request is a requirement to achieve Grey Belt.
In this phase, don't worry about being perfect. There might be a bit of back-and-forth before you get the ok to get started, so aim to have a mininum viable idea and ship it for review. We recommend you take your time to think about what you want to build. Actually undistracted, device-free thiking. Walking is great for that. We spend less and less time in our own head without having our attention grabbed. You'll be amazed with what your mind can come up with when left alone. 😊
Upon completion, your project will, with your permission, feature in a dedicated area of our website and on The C# Academy's social media accounts (Linkedin, Twitter, Instagram, Threads, Blog). You want to showcase your great achievement to the world!
Review Repository
https://github.com/TheCSharpAcademy/CodeReviews.FlagshipProject