20+ C# Project Ideas to Sharpen Up Your Programming Skills
It’s easier to learn how to program when you have a goal in mind. You can learn the syntax for writing basic code in C# from reading books, but that type of knowledge doesn’t really stick unless you use it on something specific. You may not quite understand every part of the project at the beginning, and you may make mistakes. Mistakes are actually part of the learning process and will actually help you remember the programming concepts you are trying to learn.
Having a project to practice your C# coding skills will give you the focus you need to make your new knowledge stick around. You will get stuck. You will make mistakes. You will have to do Google searches to figure out something you want your application to do. But, in the end, you will learn a lot because this is a marathon and not a sprint. Do not expect to be an expert within one month.
Learning C# can be a lot of fun, but if you’re tired of the same old “Hello World!” and basic calculation programs, we’ve collected a bunch of interesting C# project ideas that will help transform you from a beginner to an expert developer or just upgrade your skills.
Table of Contents
- Simple ATM Software
- Film library
- Ecommerce web application
- Online voting application
- Twitter bot
- Note-taking application
- Driving game
- Search engine
- Ebook library and reader
- Personal information manager
- Project Euler
- More C# projects
1. Simple ATM Software
This simple project will essentially create a simulation of an ATM within a Windows program. Just like an ATM, the program should have at least the following features:
- Checking whether an input – such as an ATM card (a debit/credit card number) – is recorded correctly
- Verifying the user by asking for a PIN
- In case of negative verification, logging out the user
- In case of positive verification, showing multiple options, including cash availability, the previous five transactions, and cash withdrawal
- Giving the user the ability to withdraw up to $1,000 worth of cash in one transaction, with total transactions limited to ten per day.
For a more complicated program, include the ability to register a new PIN and mobile number, a detailed bank statement, and a “fast” cash withdrawal system for quickly withdrawing $20, $50, or $100.
2. Film library
You all know and love IMDB, so how about making a little film library database of your own? This will be a desktop app that stores data about movies you own/love/want to watch. The app should be able to:
- Store data on a new movie
- Retrieve data on a movie that exists in the library
- Include search functionality and the ability to edit entries
You can use Microsoft SQL Server for the database and Visual Studio for the front end. What other features can you think of adding? Maybe you could make it pull data from IMDB to populate your applications. Maybe it could pull images, movie posters, and trailers from the web.
3. Ecommerce web application
Ecommerce is big business, and learning about it by building your own e-commerce application will give you a head start preparing for a C# ecommerce development job. This project is advanced because there is a lot to an e-commerce site, but you can build it up slowly by starting with simple inventory management and display and then adding the other features one by one.
So what does an e-commerce application need to do?
- It needs to store product details.
- It needs to add inventory when products are received.
- It needs to remove inventory when products sell.
- It needs to store customer details.
- It needs to store order details.
- It needs to process payments.
What more can you think to add to the application? You can add configurable products like t-shirts that come in multiple sizes and colors. You can add separate billing and shipping addresses. You can add gift orders. Amazon, watch out!
You can of course build this application using frameworks such as WPF for a Windows application, or you directly learn how to build it using ASP.NET which will allow you to make it a web application.
4. Online voting application
In democracies, voting is important. The internet has been around for decades, and yet democratic nations rarely use online voting. Maybe you can make the difference and come up with a secure, accurate solution to online voting. This project could also teach you why online voting is such a hard problem to solve.
So how would you solve it?
- Voters need to register online, so you need to add a way to upload ID documents securely.
- These documents need to be reviewed and verified before a voter is allowed to vote.
- Then each voter needs to be sent a unique link that will take them to a page to vote on Election Day.
Now you can add more features or try to hack it in some way. See if you can add fake votes or fake people or vote multiple times. Once you can hack it, then figure out how to prevent it.
5. Twitter bot
This is an open-ended project and can turn into something huge. There are many types of Twitter bots out there. All of them start with connecting to the Twitter API, which is pretty simple. After that, you can make your Twitter bot as simple or as complex as you need it.
Here are some ideas for interacting with Twitter using a bot:
- Track a major newspaper’s articles and tweet when changes are made to articles.
- Tweet when Bitcoin moves up or down 5% in the last hour.
- Retweet every tweet that mentions a specific hashtag.
- Reply to questions sent to you with an answer from another API.
- Create a timer bot that responds to every time interval sent to it with a reply when that time interval is up.
What other ideas can you think of? There are really a lot of things you can do with Twitter.
6. Note-taking application
The good thing about this project is that there are plenty of examples of this type of app. They are also pretty popular. What do you want your note-taking app to do?
- You need a GUI with an editor and some menus.
- You need to save the notes to a folder or a database like SQLite.
Once you have those basics done, then you can add features like:
- Wiki links between notes
- Zettelkasten note-taking features
- Syncing through a cloud service
- Markdown preview
- HTML WYSIWYG editor
- Cross-platform applications using Xamarin
What other features can you think to add that will make your application stand out among the hundreds of others?
7. Driving game
Racing and driving games have been around since the earliest days of video games. If you are a beginning C# developer and are interested in game development, a driving game is a great place to start as long as you stick to the basics and use 2D. If you are an intermediate or advanced developer, you can upgrade this project to include 3D graphics. There is a perfect driving game project for any level of C# developer.
Here is what you need to think about when creating a basic top-down, single-player 2D driving game where you must steer clear of obstacles in the road:
- You need a road graphic that scrolls from top to bottom to simulate driving the car.
- You need a car graphic and class to represent your car.
- The car needs to move right and left on the screen.
- The car needs to have “lives” that it loses when it hits an obstacle.
- You need graphics that travel at various “speeds.” For example, other cars that are “driving” on the road would move slowly from top to bottom in relation to the speed the road graphic is moving. Stationery obstacles in the street would move with the road.
- The speed that the road scrolls should increase gradually or at checkpoints in the game to increase the skill level needed to miss obstacles.
- You need a point system. To simplify it, you could base it on the time spent playing the game.
You will notice that in this game, you “simulate” some actions to simplify the game. The car you are driving in the game only moves left and right, and the other graphics move from top to bottom. What else does this game need? A leaderboard that you can add your initials to? Maybe a car graphic that shows damage with each accident? What other features can you think of?
Hereby I would recommend using a game development engine such as Unity or Gadot. They make the development process a lot easier and allow you to build bigger games much quicker than you could without them.
8. Search engine
Google is a very advanced search engine, but it started out really simple. With this project, you can start simple and add as many features as you want. This project will teach you a lot about the internet, parsing HTML, and indexing data.
Here are some requirements you might add to your search engine:
- To prevent it from going too far, you can restrict it to a specific website.
- It needs a database to store the data from sites you crawl.
- It needs to parse the robots.txt file on a site to determine what it can and can’t crawl.
- It needs a crawler that starts with a URL, downloads the page, and adds any links it finds to its queue.
- It needs to limit the rate of crawling so you don’t take down a website.
- It needs a parser that takes the downloaded pages and extracts important elements from the HTML.
- It needs an algorithm to rank these results for specific queries.
The last item on the list is where it gets advanced. You can also start simply and build a crawler that only hunts for specific files on the internet like PDF or EPUB files.
9. Ebook library and reader
If you built a web crawler to find PDF or EPUB files like suggested in the last project, another project you can build that works with it is an ebook reader. Ebooks make it possible to keep as many books as a brick-and-mortar library on your hard drive, but once you get that many ebooks, it can get hard to organize. You could create an application that not only displays ebooks so you can read them but also searches your hard drive for files and adds them to a library.
You could start with these features:
- Start with one format like EPUB, which has specific standards that should make parsing simpler.
- Search your whole hard drive for files with the extension and add them to a queue.
- Parse the files for author, title, publisher, and other values you want to search or sort by.
- Adds this data to a database.
- Create a library view that lets you navigate and search through the books it found.
- Create a reading view.
Once you’re done with that, you can look at Google Play Books, Nook, or Kindle for other features you can add to your application. Some things you can add are notes, bookmarks, and highlighting.
10. Personal information manager
A project idea that works along with the note-taking application project is a personal information manager. Notes are handy for free-form information, but a lot of the information you want to remember is structured. Structured data is also easier to search because you can search specific fields for specific values, like all of your contacts with the last name of Miller.
This project idea is only limited by the types of personal information you want to store. However, you will need a few basic requirements to run it:
- A desktop application (using WPF or UWP), a web application (using ASP.NET), or a mobile application (using Xamarin)
- A database to store the information in
- At least one table for each type of personal information you are storing
After that, you can start creating a way to store and search contact information, and then rinse and repeat for any other type of information you want to store. If you want to store passwords, you could also encrypt the data before the application stores it and require a password to access it.
11. Project Euler
Named after the 18th-century Swiss mathematician who is usually considered the father of modern mathematics, Project Euler is a set of mathematical/programming problems that test your coding, mathematical, and logical skills. As any programmer worth their salt will tell you, to be a great coder, you need to be at least a moderately good mathematician.
This is not like the projects we have looked at so far. You won’t have an application after you complete it, but you will know a lot more about writing code. Project Euler is the perfect place to start with problems such as finding the largest product in a series, the largest prime factor, and even Fibonacci numbers. The best part? You can do these challenges in any programming language you choose!
Project Euler will even let you create an account and store your results.
HackerRank is like Project Euler. At HackerRank, you will solve complicated problems. You will also be able to store your results. The difference is that at HackerRank, you can take tests that could get you a job. HackerRank is a technology hiring platform that over 2,000 companies use to vet candidates before they consider hiring them. All the tests fit the requirements of specific jobs, and completing some of these tests will give you a certification that will make your name stand out with these companies.
While we are looking at the “projects” that are actually coding test platforms, I thought I would add another good one that could get you a job. Codility is like HackerRank. It has coding tests that will walk you through complex problems that you can solve in their online IDE that handles multiple languages, including C#. Codility also has coding contests that they call Challenges, where you compete with other developers in coding competitions to get a job.
14-22. More C# projects
To keep the focus you need to finish your C# project, you will need to choose a project that interests you or create a tool that you might actually use yourself. If none of the projects above fit your needs, here is a list of more project ideas:
- Barcode generator
- Intranet chat
- Mobile phone tracking system
- Mobile remote management system
- Electricity billing system
- Brick-breaker game
- Airline reservation system
- Chess game
- RSS feed reader
- Virtual private network (VPN)
- Recipe management system
- Healthcare management system
- Network packet sniffer
- Online survey system
- School-management system
- Labor-management system
- Exam software
- Remote desktop administration software
- Simple banking application
- Snake game
- Pong game
- Online library
If you like any of the ideas above, you can take the following steps to build it:
- Find tutorials that will give you the information you need to understand the project better.
- Experiment with software that has the same features that you want in your application.
- Figure out how the software operates.
- Do some Google searches to see how other developers have tackled the problems you are having.
- Make a list of features that will make the software functional.
- Get your software working with those features.
- Add more features.
You will also find many more projects with tutorials by searching Google. Both open-source and Microsoft developers use C#. You are bound to find a project that will hold your interest.
If you are filling your head with programming information from books and learning about C#, building a full C# project will help you put this knowledge to use. Learning about syntax or how to do something simple won’t stick around in your mind for long until you know how to put those concepts together in functioning software. Completing software projects is the key to building your C# coding skills. Hopefully, one or more of the projects above interest you, and you choose to create one today.
Top courses in C#
C# students also learn
Empower your team. Lead the industry.
Get a subscription to a library of online courses and digital learning tools for your organization with Udemy for Business.