5 Unique Final Year Project (FYP) Ideas

Image is corrtesy of University of Limerick

Many students ask me about final year project (FYP) ideas. Here I share some ideas that may not be unique but carries a lot of stuff to learn. And these are different from routine FYP ideas e.g. library management, shop management, school management etc. Please note, I am not available to supervise any of these ideas because I am already occupied with my current FYP students, but you can work on any idea without my written permission and under any supervisor.

1. 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.

2. 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.

3. 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.

4. 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.

5. Computational Thinking Game for 3-5 Yrs Kids

In developed world, Computer Science has become general subject and mandatory for very young students. The computational thinking (what we do when we program) is considered a general problem skill that is no more limited to CS professionals. For example, 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, interesting and fun way (specially when learners are kids). If we could help very young Pakistani kids to computationally think using very enjoying and cartoon-oriented artifacts (using things that are popular in our culture). It could help them to learn programming fast, even in their 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 year kids, basics of kids psychology and devise some strategy to help them learn computational thinking in "kids way". This idea may help to get funding from governmnet or educational bodies as it would help in human capital or manpower development.


6. Chat-Bot with Website and FB Messenger Integration

Chat-bot Development is very demanding skill these days. There are huge number of projects of high budget ato different freelancing sites. Search "chatbot" keyword at Upwork, Fiverr or freelancer to get an idea about the available opportunities. Its demand would further increase with time because more people would interested to deploy them into their websits, Facebook Pages, email, etc.

Most small scale companies have limited staff to address customers queries or answer message received at Facebook or email. For example, if you want to order a product on Facebook and you send a message to business page or e-commerce website. If that company is already buys serving orders or the order-taker is not available at the moment to chat live, you have to wait. Many big companies have developed and deployed chat-bots i.e. a program that perform conversation with users automatically. So its always available to answer customer queies sent on email, on website contact form, or as Facebook Message. Chat-bot can be deployed anywhere you want. There are different type of chat-bots, some are conversational (also called Dialog Based) in which user send a message, the Chat-bot reply accordingly, when user respond, chatbot reply again based on the current state of the dialog. Chatbots may be options driven i.e. your bot gives options to user to pick one. It may be performing conversation by free style by understanding natural language text, which requires to deploy natural language processing techniques to understand. You may need to integrate intent, entity identification, machine learning and AI to further improve it. I shared, this is huge area. Even you can integrate Recommender System in your chatbots to give right suggestions to users based on user past interactions or purchases.

Explore following to start with:
https://messengerdevelopers.com/ See how FB messenger can be used programmatically used and how it can be integrated with page/fb-messenger.
https://chatfuel.com/ -> Chatbot development platform

7. Chrome Extension for Scrapping / Bookmarks Management

The objective of this project is not to develop a specific extenion but to learn creating different type of extensions in Chrome. Exension development do not require new skill but what you have already learned as web developer i.e. Javascript, XML/JSON parsing, REST APIs, Push Notifications, etc. You may develop an extensions that would help the visitor to scrap required data from the current page easily. You may also develop an extension that manage Chrome bookmarks in a better way. You can capitalize your extension development knowledge in freelancing in much better way.

8. Blockchain as a Service

There is huge demand of blockchain developers. You can build a blockchain as a service application. It would help you to understand how different algorithms work that powers the blockchain technology. It would help you to provide development and configuration services to clients who want to host new blockchains or deploy their solutions on existing cloud based blockchains services provided by IBM, Microsoft and Amazon for example.

9. Smart Contracts for Agreements Management

Smart Contracts is technology to write contracts in progammatical way that is signed between two or more parties. In current world, when some dispute occurs, it cost big to others e.g. hiring lawers to file case. In smart contracts, you program all the parts of the agreement and define triggers what should be executed when and what amount should be transferred to who based on some conditions, etc. Once a contract is deployed, its piece of code that has access to accounts of stackholders and can communicate with different services to query information that the contract may need to execute. .. long story short, its very interesting and high-deamdn skill. It would require you to put good energy to learn, experiement and develop apps based on it. But once you learned, you can capitalize this skill in very interesting and valuable ways. Again, some some online freelancing sites to see how demanding and highly-paid this area is.

To understand all this, you can develop some contracts. For example when a person give credit to some other person. You can implement the contracts and enforce the return policies etc. In same you, you can implement contract between propery buy and seller. Initially, actual focus should be learning technology and theory or algorithms behind that strengthen this technology. So that, in later when you provide professional services in this area, you know what its all about.

9. Cryptocurrency Market Watch and Prediction Service

Cryptocurrency is another very hot and trending area. There are huge number of open projects that require the skill of creating new cryptocurrencies and interacting with existing currencies. In this project, you care create an analysis services that interact with different currencies services using their API or related protocols and provide history and latest rates of cryptocurrences. Once you collect data of digital currency rates for multiple months or years, you can also deployed machine learning to make a prediction service based on historic trends.

10. Open Source ERP Development

Enterprise Resource Planning (ERP) solutions are software that run all or multiple business processes of an organization e.g. sales, payroll, purchases, manufacturing, accounts etc. Generally ERPs are highly configurable so that businesses can customize it according to requirements e.g. activate or deactive different modules. ERPs are built in wa way, the required modules can work in isloation from others that the business do not need. Developing an ERP from scratch is a long project and requires months of development effort and requires detailed understanding of different business processes. When you work on existing ERP, you can learn the domain from available documents and code. There are very popular open source ERPs available. You can pick a popular one. First you must understand how it work, the learn how to configure to meet business requirements and finally build new module to integrate in ERP and back contribute to open source project. Even if you could contribute less, you would learn how open source work. How different people contribute and collaborate to work on one project. You would get expertise of ERP domain and hands on experience and skill to deployed chosen ERP for real clients. You can pick OFBiz, as its Apache license based open source software. There are many alternatives, just Google and then study different freelancing websites to see which ERP is most demanding.


------------------

Advise: Do not pick an idea only because it sounds interesting and unique. Pick one you feel you can develop, whose supervisor is available to guide.

Comments

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

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

      Delete
  2. Public compute engine (y)

    ReplyDelete

Post a Comment