5 Unique Final Year Project (FYP) Ideas

Image is corrtesy of University of Limerick

Many students ask about final year project ideas. Today, I got some time thinking of some unique ideas with good learning potential or may be a business opportunity, if executed well. By unique, I mean something that is not traditional like e.g. accounting system or library management system but beneficial for students for professional life or self learning skill enhancement. 

Please note, I am not available to supervise any of these ideas because I am already occupied with my current FYP students.

Sensors and Monitoring App - Internet of Things

Recently Internet of Things (IoT) got some popularity and demand. Punjab Government is also working on Smart Cities project, expected to announce in coming months/years. Some universities has started offering IoT as an elective course. It sounds good time to get some understanding and hands on experience. 

Idea: I have a warehouse, many kilometers away from the sale point and home. Second warehouse in another city. I want to see the live updates of temerature of the warehouse, smoke level, humidity level, status of all doors (open or close) and live stream of all cameras installed with option to navigate the camera, all from my Android App.

Learning potential: you would learn using multiple sensors and how to integrate them into software. You would explore some IoT framework and the data shall be sent to some server from where the Andoid or web app shall read it. You would also learn how to develop Andoid apps.

Live Transations and Log Analysis - Big Data

Web apps and services or APIs that serve thousands of requests per second generates log too fast. Log is the brief info of current status or activity that system just processed. The systems are already under heavy load and its difficult for them to analyse the log real time, as it would consume too much resources. Sometime these logs contains important information for the organization or the application admin e.g. unexpected financial transaction, large amount transfer, transaction between under-monitroing accounts, failure of important email sending, etc. Mostly it involve text processing but sometimes we may need to apply machine learning algorithms on collected logs data to find the patterns of interst. The product that could process huge amount of log in real time and detect the events-of-concern from the log would be very useful. 

As the logs are generated too fast, so it is not possible to process them in real time using single computer (say, 100,000 transactions per second). The solution is to design a dedicated system of 100s or 1000s of computers that process these logs and detect the patterns of concern. Apahce Spark is designed for this purpose, its Big Data Analytics system optimized for live processing of data (others are optimized for batch processing for "offline" data e.g. Apache Hadoop). It can run on single or 1000s of nodes to perform the analytics jobs.

Learning Potential: Big Data is emerging area. Related theoretical knowledge and hands on experience of using related tools would be big plus for the students who would do this project. It also carry the opprtunity to learn some popular machine learning algorithms, as they are mostly used to find patterns from data. The good thing is, Apache Spark also contains a complete toolkit that has many machine learning algorithms. If you are committed enough, you can made a product out of it that offer log or related analytics service to clients.

Desktop Facebook, Pages Manager or Marekting Tool

Many websites provide APIs to connect and perform read/write operations programmatically e.g. many products of Google, Amazon, Microsoft provide APIs to connect. Experience of using these APIs can be very helpful to make softwares that talk to other softwares. Just to learn how these API are developed or consumed, it might be good idea to develop Desktop version of Facebook. This desktop application providing all features that Facebook allows via API. It may not be a good business idea to develop Facebook desktop app, but experience of using their APIs can be beneficial for other stuff e.g. you can build Facebook apps that talk to specific Facebook services. 

Here is another example app, I have hundreds of Facebook pages, I would love it if someone make a single app that option to make scheduled post for these pages from a single UI and provide analytics of all these pages using Pages API. Facebook also provide Marketing APIs, you can build a custom marketing and compaign tracking solution that is better than Facebook default Ads Manager. Or think of other stuff that takes much time if done manually on Facebook.

Public Compute Engine / Crowd Sourcing of Computing

With each passing year, internet speed is increasing and bandwidth rates are decreasing. So I believe, some services which are operated in house by companies would start going public and become generalized in coming years. Today people make money by filling forms, data entry and doing professional stuff at home. I beleive, in near future, people would make money by just putting their computers ON for others to utilize for processing.

Idea: In this project you shall develop a custom software that shall allow user to install it and configure how much bandwith, RAM, processing capacity and hard disk user want to provide for others to use. Another module of the same software would allow "the client" of these crowd sourced computing nodes. There client part shall be totally decoupled from the "processing" part so that we can develop open competition among companies and the company who pay highest for the resources could jump up so that users who sell their computing infrastructure could make more money.

Lets understand this project with help of an example. Assume 2 millions users installed the software who are providing some storage or computing resources. Let a company needs to process billions of pages to find some information, if the company takes resouces from Amazon or Google clounds, its too costly. The company decided to use the Public Compute Engine. Company would bid for the storage and processing, that bid would be received by some users (from the 2 million chunk), they would accept the bid or reject it. Incase the accepted, their resouced would go on rent to that company. The question is, why someone would reject, because another company has also placed a higher bid, accepting that would be more beneficial.

As the number of users would be too much, companies would be able to buy the storage and computing resouces extremely cheap. Such companies include one that have some too much amount of data and they need millions of processing cores and millions of gigabytes of memory to process it. 

How to do? Apache Hadoop is designed to process the jobs utilizing computers on network. So its distributed processing engine and open source. You can modify related parts to optimized for your specific need and write new components for the stuff that is specific to this system. So it shall be a blend of your own code and part of Apache Hadoop.

Computational Thinking Game for 3-5 Yrs Kids

In developed world, Computer Science has become general subject and mandatory for very young students, even kids. The computational thinking (what we do when programming) is general skill and its no more limited to CS professionals. President Obama allocated 4 Billion USD in 2016 for a project named "CS for All" to equip kindergarten to high school students to learn computational thinking, saying CS is "new basic" skill and mandatory for all to thrive in digital economy. See details here. Learning programming is tough unless its taught in an awesome way. If we could help very young Pakistani kids to computationally think using very enjoying and cartoons related artifacts (again using things that are popular in our culture). It could help them to learn programming fast, even in their pre-primary classes. Too much work is being done on this area by foreigners, you need to study and explore the games developed for 3-5 years kids to learn basics of kids psychology and devise some strategy to help them learn computational thinking in "kids way". 


Note: Please note, do it only if you find the right supervisor and/or you really believe you can do it considering the difficulty level, work required and your background knowledge and programming skill. I am definitely not responsible if you pick it and latter realize that its out of your capacity or your supervisor is not helping etc. If you use any of these ideas, please don't forget to cite this article under your references.

Want to say me thanks? Share this post on Facebook.


  1. Sir g...!! apki umeed per yakeen karain abi tak koe supervisor nai done kiya mene... aur na hi project done kiya koe..!!

    1. Projects are above ... so 50% work is done. You just need to find a supervisor now.

  2. Public compute engine (y)


Post a Comment

Popular posts from this blog

Task 12 - Create Java Program with MySQL Database Connectivity

Java Interfaces and Exception Handling - Practice Problem with Solution

Task 16 - Javafx Program to Create, Retrieve, Update and Delete records with Database