Project Ideas for Programming Portfolio
Project Ideas for Programming Portfolio

I say really often that you must include some projects in your portfolio even if you don't have working experience. And this is really important. But some people struggle to find good projects that they can implement and add to the portfolio. This is why here I want to share with you first of all some rules that can help you to implement a correct project and secondly some project ideas for your portfolio.

If you linked a project inside your CV than interviewer can check your project and your level just in 1 minute. This is why it is extremely important to do that because in other case it is not possible for interviewer to understand your level. Then both people must spend time for the interview without knowing if it will work or not.

You MUST put a project inside your CV.

But there are several rules.

Big enough and complicated.

And rule number one is that your project must be big enough and complicated for interviewer to check it out. So if you have something super simple like one page without anything difficult it's not a lot to check. But even if you have something small it is of course better than nothing.

Upload code to Github

Rule number 2 is to always upload your code to Github. There is no possibility to check your code without some link. And the link to the archive is not something that people are typically using. All programmers use some remote repository like Github or Gitlab where we can check the code. So you must uplaod your code to public Github repository. And if you don't know what is Git or how to upload it to Github you can do it with graphical tools in one evening. It is not that difficult.

The main point is that interviewer just want to click on the link and check your code in a matter of seconds. And if you want to make it even better you must have a nice history of your commits. So you should not have 100 commits with name "Work in progress" without meaningful names. You must split your features in chunks if you can and make meaningful names for every piece of your code. In this case you will directly show an interviewer that you are skilled developer and you know not only how to write code but how to deliver it.

Real business project

Also I highly recommend you to implement a real world project. If you implemented some game because you like gaming but you apply to a frontend position it is not really what interviewer wants to see. If you apply for a web position it makes a lot of sense to show a website. If you have a mobile position then you must show a mobile application. And mostly it must be a real application similar to the projects that you will build in real world.

Shows skills and level

Also it is not only important to show your project but show your level and your skills. You must always write meaningful names of varibles, you must always try and implement your code in the best possible way because with your project you want to show not only that you implemented something but that you are advanced developer, you do things right, you have nice naming and it is easy to work with your code.

Code must work

Also some interviewers might want not only to check your code but to run it. Which actually means that your code must be working. You project should not be broken and it should not be buggy. So you need at least to polish it a bit. It should look like a finished project that you can present to your client.

Must have business logic

Also I saw quite a lot of projects where there is nothing to see. You have several pages with some data but you don't have any business logic or something that show the level of the developer. For example let's say that you've built your project with React. Then you want to show there 2 things. First of all you want to show how good you know React. Your file structure must be organized correctly, you must leverage features of the framework and use this framework correctly. But also you must have some business logic to show your skills as a developer. And typically any framework is just a wrapper around your business logic. So your project must be not only a bunch of pages but it also must have some business logic in it.

Project idea: Todo list

Now here are some project ideas if you don't know what to implement. Here I opened https://todomvc.com and this is a typical todo application. So here we can add our todos, we can filter them, we can mark them as done and edit them inline.

Todo mvc

And actually I consider it a relatively small project. Yes you can implement it correctly but I would like to see something more advanced. So if you implement some small project like todo list you must make it more complex and add more business logic. For example here you can at least toggle your items, you can filter them, you have inline editing.

So if you implemented a todo list with just one input and nothing more then it is really small project and there is nothing to show here

Project idea: Blog

Another possible project which is not big is a blog. Here is an example of typical blog. And it might be relatively easy to start with. But again it is an easy project so you must make it a big more complicated.

Blog

As you can see in this project we don't have login, registration but just contact and about pages. But at least on the left we see a search and popular tags. Which actually means that at least we have some business logic to check.

Project idea: Medium clone

But actually a gold standard of project for portfolio I consider a clone of medium.

Medium clone

It's a real world project built in different languages. As you can see here it is built with Angular so this is a frontend part of this project. You can also take a backend part and implement API for this project. And actually I use this project in all my courses because here we implement a lot of real world features. Authentication, registration, fetching data from API, liking and disliking posts, pagination, following different profiles and much more.

And it is not a small and not an easy project. There is lot's of business logic inside to check the skills of the programmer.

Project idea: Trello board

Another good example of project is building something like Trello board.

Trello

It is a system for task management. So here we have some lists like todo, doing and done. We can create cards inside and we can drag n drop this cards to different columns, we can also assign this cards to different users, we can of course login here and add new users to our teams and much more. So it can be a really complicated project. But you can also start just with some simple functionality like just rendering lists and cards inside and then you can make it as complex as you want.

Project idea: Chat

One more interesting idea is a socket.io chat.

Chat

Here we can type our name and write messages inside a chat. Here we have a chatbot and different people typing something. So it is publicly working chat. And this is a nice project example if you will make it a little bit more complex. For example you can implement it with a list of contacts, with changing chat rooms and notifications from different users.

Project idea: Expenses tracker

One more project example is expenses tracker.

Expenses tracker

This is an application where you can add expenses and your incomes. It can be really complicated and have a lot of business logic but as always you must start small and then improve it with time.

Project idea: Netflix clone

And last but not list what you can build is a Netflix clone. This is a really popular website where you can build quite a lot. Like lists of different videos, a single video, video player and much more.

Netflix clone

Bonus

And here is my bonus recommendation. If you want to implement some popular thing like Medium clone or Trello clone it is for sure there on Github in free repositories that you can check. This is why you can simply jump to github.com and search there for some project that you want. You can see code from other people, compare it with yours and improve. Also if you don't know how to implement some feature then you can find it in the repositories of other people.

And my most important recommendation here is to always implement a project that you are interested in. If you will just take some random project then it will be boring for you and you won't make it for the long period of time.

Also if you are interested in the rules to avoid common programmers pitfalls then make sure to check this post also.