Mini projects are an important starter kit for developers who want to pursue a career in tech.

Interviewers are particularly interested in your mini projects. The computer science mini projects you work on sheds light on your career interests and speaks for your enthusiasm to learn tech concepts at a deeper level.

Moreover, when you apply your theoretical knowledge in a hands-on way, you get to explore a breadth of concepts related to your topic.

The practical experience gained from tackling technical challenges in your mini project helps you walk away with longer retention of applied skills.

How to choose mini projects

When it comes to selecting a mini project, it is not paramount to select an innovative idea. What you learn out of it is important to showcase your skillset.

More than going after the number of projects, interviewers usually ask questions hoping you would have chosen mini projects that you care about. Having multiple projects in your resume and not being able to give in-depth answers about them throws you in a bad light.

Have a good mix of mini projects that

  1. Help you grasp a concept in depth and
  2. Are an opportunity to implement your knowledge in innovative ways.

As a recommended practice, work towards having 3-5 mini projects in your resume.

Use the following checklist to choose your mini projects:

  1. Select mini projects that add value to your career goals.
  2. Make sure they are in line with your programming interests.
  3. Build or add a feature that solves a real problem.

Some questions to think about when choosing innovative project ideas:

  1. What problem is my project solving?
  2. Who is it solving for?
  3. Why does this problem need to be solved?
  4. Are the skills and technologies relevant today/next 5-10 years?

Always keep these points in mind when choosing project ideas for computer engineering.

1--1-

Innovative project ideas for computer science engineers

If you are not sure where your interest lies or are feeling stuck in coming up with a project idea of your own, you can take inspiration from these projects for computer science engineers:

Javascript projects

Online white board (credits: Nabhan Abdulla)

Online tutoring and schooling from home are becoming very common nowadays. Moreover, because of the COVID pandemic, brainstorming and discussing ideas over video calls have picked up in popularity as well.

In such cases, whiteboards play an important part in making these tasks simple. With a whiteboard, you can easily explain and share ideas. Having a digital whiteboard solves the problem of purchasing and installing a physical one.

What to do

Build an online whiteboard.

  1. Implement basic drawing features like pen, shapes, colors, and eraser options.
  2. Implement option to redo/undo actions.
  3. Implement feature to export the drawing board (as pdf/image).
  4. [Miscellaneous] Implement feature to collaboratively work on the same whiteboard using an invite.
  5. [Miscellaneous] Create an app using electron.js.
  6. Deploy to netlify.

Scope of the project

Concepts: Data Structures and Algorithms, Frontend

Skills: Data Structures (Stack, Queue, Bucket), Jspdf, Jquery, HTML5 Canvas

Tech: HTML, CSS and JavaScript

Time investment

20-30 hours

References

Java projects

Bulk Thumbnail creator

Thumbnail images are often used to represent a larger image or a video. It helps developers to display more content to users without affecting the website load time. These are also used by video players to give users a snapshot of part of the video where the user wants to seek to.

What to do

Develop a web app to create thumbnails from video/images.

  1. Implement feature to create thumbnails for all images in a folder as per:
  2. Specified height and width (crop if required).
Original thumbnail images

3. Specified height and width (don’t crop, add black background to fill).

Images resized to same height and width (but cropped)

4. Implement feature to create thumbnails from a video as per:

5. Specified height and width (crop if required).

6. Specific interval (in seconds) between each subsequent thumbnail.

7. Implement multi-threading to improve the performance of the application.

8. Perform thumbnail generation in the background to interact with the application during processing.

9. Handle different tasks like re-sizing, renaming, etc using different threads.

Scope of the project

Concepts:  Image Processing, Multithreading

Skills: JavaCV, Java Threads/Runnable

Tech: SpringBoot, Gradle

Time investment

40-50 hours

References

Python projects

Emotion Based Music Player (credits: Gourav Sardana)

Google Search has set the bar high to immediately receive useful information for things we search on the internet. Today, users automatically expect to get accurate and instant recommendations on almost anything.

Wouldn’t it be cool if there was a music player that could recommend songs based on the mood of a user?

What to do

Create a desktop GUI application that recommends songs to users based on an emoji or live emotion of the user.

  1. Create a basic music player such that users can:
  2. Search for particular songs they like.
  3. Listen to songs from a wide range of music.
  4. Filter songs by genre, artist, etc.
  5. Implement functionality to extract emotion from an image a user uploads or clicks a live photo - Refer.
  6. Implement functionality to recommend songs based on emotion. Users should be able to receive recommendations based on:
  7. An emoji selected, photo uploaded, or a live photo clicked.
  8. Their selected genre/artist.

Scope of the project

Concepts: Facial Emotion Recognition, Convolution Neural Networks, Recommendation Systems

Skills: Tkinter, OpenCV

Tech: Anaconda(Python), Keras

Time Investment

70-80 hours

References

Android projects

Deal Finder

Despite the unpredictable nature of the stock market, every investor wants to know how their stocks are performing and which stocks to buy/sell at the right time. They are constantly looking for reliable forecasting platforms to make the best data-driven decisions about their trades.

What to do

Build an Android application that presents users with useful intel on different stocks. Implement features to:

  1. Fetch stock data using an API.
  2. Add stock portfolios (use a database).
  3. Predict the price of selected stocks and calculate the risk of trading these stocks.
  4. Visualize information like user’s current stock returns, prospective stocks forecast, competitor analysis, etc.

Scope of the project

Concepts: Android Development, Data Visualization

Skills: API Handling (RestTemplate, Jackson), Time Series Analysis, Google Chart/JFree Chart, Tiingo API

Tech: Android Studio, Android SDK, REST API

Time Investment

40-60 hours

References

Web Development projects

Portfolio Website

Portfolio websites are a great way to showcase your skills and talent to a potential employer. Having a portfolio website gives a clear message about how serious you are about getting hired. Moreover, building a website sharpens your web development skills and adds relevant skills to your skillset.

What to do

Create a portfolio website to show off your projects and achievements to prospective employers.

  1. Use any frontend framework like Angular/React to develop the portfolio website.
  2. Find a template online or try your hand at designing a website.
  3. Include links and add demos of your projects.
  4. Deploy your website on netlify or Github.
  5. [Miscellaneous] Buy a domain and host it on cloud.
  6. [Miscellaneous] Build your own CMS (like Wordpress).

Scope of the project

Concepts: Web Development

Skills: Netlify/Github Pages, UI/UX (Figma)

Tech: Angular/React

Time Investment

20-30 hours

References

2--1-

Other software projects for CSE

FTP Server

Sharing memories, large files, or even confidential documents, have become an effortless task for people across the world today. But being able to share files from one location to another is not enough. Data protection has become increasingly important with the number of security threats rising over the internet.

What to do

Create an FTP server to backup your files to the cloud and transfer them securely over the internet.

  1. Build an FTP Host server.
  2. Implement functionality to transfer files via the FTP protocol (use VSFTPD).
  3. Add a provision to authenticate users.
  4. Implement functionality to securely communicate using SSL protocol - buy a SSL certificate/create a self-signed certificate.
  5. Deploy your server on Heroku.
  6. Build an FTP Client
  7. Create a simple website or GUI application to upload files using FTP protocol.

Scope of the project

Concepts: File Transfer, Networking, Deployment

Skills: FTP, SSL, Server Side Scripting

Tech: VSFTPD server, Bash Commands, Heroku

Time Investment

20-30 hours

References

Additional resources for more CSE project ideas

How to include projects in your resume

It doesn’t stop at just working on multiple mini projects. An important element in getting noticed by leading tech companies is to present your skills in an informative and engaging way.

Also read: Learn how to write appealing work descriptions in your resume.

Before adding all projects in your resume, take a moment to structure your information in a concise and consistent manner. Include information that would interest your potential employer.

When scanning through your resume, in one glance they should understand:

  1. What your project is about
  2. What you did in the project
  3. The skills and technologies you have used in the project
  4. Time spent on the project

Later when you are called for an interview, be prepared to answer questions related to:

  1. The thought process behind selecting the mini project
  2. Technical challenges faced during the mini project
  3. How you overcame them
  4. Anything you would do differently to improve your project today
  5. Key learning outcomes from the mini project

Quick Recap

  1. Mini projects are an important starter kit for developers who want to pursue a career in tech.
  2. Mini projects are meant to deepen your learning in areas that pique your programming interests.
  3. Have a good mix of mini projects that help you learn and implement knowledge in innovative ways.
  4. It is recommended to have 3-5 mini projects in your resume.
  5. Usually, the duration of most of the mini projects is around 20-80 hours. So, even if you have missed working on meaningful projects, you can start now.
  6. Present the skills and technologies gained from your mini projects in a concise and consistent format in your resume.
  7. Include information that would interest your potential employer.
  8. Be prepared to answer in-depth questions related to your mini projects.

3--1-

Project ideas suggested by the community

Project ideas from Harsh G

Terminal based Twitter app

Get to learn terminal and related things alongwith playing with APIs and tokens on your choice language/framework.

  • Signup/login
  • Post/browse tweets
  • Anything that gives good learning and you think should be absolutely there.

Regular Twitter clone

Get to learn one of the hot frontend js framework, for backend can be node making full stack js or can be java/go/ruby/scala/python depending on what you want to learn.

  • Signup/login
  • Follow/unfollow
  • Post and view tweets and comments

URL shortener

A sweet small project that can cover good number of things.

Medium or dev.to like app

Using github pages and adding disqus and other things to it.

Project ideas from Rahul Suresh

  1. Build an app for your University that helps to track attendance and classes of students. (Tech stack that can be used -  Flutter/React Native, Firebase, NodeJS/Python)
  2. Clones of famous apps like WhatsApp, Uber, Amazon using trending web technologies, so that you get an understanding of the tech by doing.
  3. A browser extension that uses 3rd party APIs to perform some simple tasks. Example: Translate the page or copied text using Google Translate API.

Project idea from Milan Loknath Hazra

Vehark - A proper Destiny

India has been facing the problem of insufficient parking spaces.

With families getting smaller and the total number of motor vehicles exceeding the total number of heads per family, the parking scenario is woefully falling short of the current requirements in the country.

Although there are some spaces that are going unused, there is no means to identify these spaces and optimally use them. The idea focuses on proposing and developing a solution to solve this problem with the maximum utilization of technology.

The solution should be able to ease the usage of general-purpose users by suggesting a suitable parking location within minimum time as well as help Pay & Park operators to manage their customers in an efficient manner.

Users should have access to the reviews provided by peers so that they can make an educated decision about choosing a particular service provider or not.

Similarly, the service providers must also have some knowledge about their regular users and help them analyze their churn.

What to do

Create an Android application with multiphase solution

This will solve all the parking problem using real time data validation, navigation and payments and also integrating pay and parking service providers to our platform.

User should be able to:

  1. Register with the help of phone number.
  2. Find the nearest parking spot.
  3. Map the routes towards the parking spot.
  4. Enter license id for pre-booking.
  5. Pre-book parking slot and pay online/at the parking gate.
  6. Show special facilities for disabled candidates.
  7. Show government parking slots.

Skills and technologies

Android Studio

Firebase

Google Map API

Django/any web framework

VSCode

Java

Time Investment

2 weeks

Project idea from Amogh Rajesh Desai

Arithmetic Operations on Intal

An intal is a non negative integer of arbitrary length, but in case of my implementation it has a limit of 1000 digits.

Intal is stored as a null terminated string of ASCII format in a big endian format for convenience sake. The difference between this method of storing numbers and regular integers is the limit of storage.

All integer datatypes have a limit within which the numbers must be present to store it in those datatypes.

Intal is more like a custom datatype which can store data limitlessly and can include special characters with special meanings in order to maintain compression.

Eg : We could use '1e07' as exponential raised to the power seven and have an internal conversion of it. We are to perform arithmetic operations like add, subtract, factorial, multiply and many more on set of intals.

The major problem solved by intal is overcoming the range limitation on a datatype like int, float, long int etc.

What to do

The functions that can be implemented on a pair/single intal(s) can be as follows:

  1. intal_add
  2. intal_compare
  3. intal_diff
  4. intal_subtract
  5. intal_mod
  6. intal_gcd
  7. intal_pow
  8. intal_fibonacci
  9. intal_factorial
  10. intal_max
  11. intal_min
  12. intal_search
  13. intal_binarysearch
  14. intal_sort

Skills and technologies

Data structures and Algorithms

C or C++ (Use C for better challenge).

G++/gcc compiler with only a few extra modules apart from what are already available in the language.

Time Investment

2-3 weeks

Project idea from Bhaggyashri Shrikant Pawade

कामगार केंद्र

This is an Application Development.

This app will maintain database of all farmers and field labour as well as tractor rent.

They can search farmers and labours if they are available (Notify).

They get work as his/her skill.

Renting Tractor is also there.

They can show their availability status on the portal.

Real problem

Farmers and Field labour need to go their house asking for work.

They cant maintain co-ordination.

Some time field labour cant get work and farmer cant get labour because of coordination.

This topic is most demanding and needy as our country is agriculture dominated.

What to do

It is divided into four modules:

  1. Registration and login
  2. Searching
  3. Availability
  4. Tractor rent

Skills and technologies

Flutter for frontend

Firebase for backend

Dart

Time Investment

6 weeks