Final Year Project (FYP) Ideas

Image is corrtesy of University of Limerick

Many students ask for final year project (FYP) idea. Here I share some ideas that may not be noval but carries good enough scope for FYP and quality stuff to learn and excel. These are different from routine FYP ideas e.g. library management, shop management, school management etc. I am not available to supervise because I am already occupied with my FYP students. You can work on any idea without my permission, under any supervisor or industry professional (as co-supervisor).

1. Sensors and Monitoring App - Internet of Things

Recently Internet of Things (IoT) got popularity. Punjab Government is also working on Smart Cities project. 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, kilometers away from my sale point and home. Second warehouse is 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. It also invovles communication protocols to manage realtime multimedia data transfer e.g. WebRTC.

2. Live Transations and Log Analysis - Big Data

Web services 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.

11. Assets Management System

Its a web application idea. It can be developed using Angular, REACT, VUE.JS or any other server or client side web framework. You can also develop mobile application. Below I have explained the main idea.

Medium to large scale organizations has many different types of assets e.g. tables, furniture, laptops, mobiles, tablets, LCDs, projectors, shelves, etc. These assets are issued to employees from time to time. Companies want to keep track of these assets e.g. when an asset was purchased and from whom? who purchased it? when the asset was issed to someone? who has it at an the moment? What assets belong to each person or department? How to transfer assets from one department to another? When the asset was sent to repairing? The gurrantee period of each asset? Which assets no more exist? When an employee leave the organization or move to another department, companies want know which assets shall be taken back from the employee? Asset management system shall completely facilitate all these tasks, among others. Read more about assets management system from google and you would get more detailed features. (Note: this is not a noval idea, but it carries a lot to learn when developed.)

12. Cross Platform Realtime Learning System

Browsers have become very powerful, now we can make audio/vido calls without using any plugins. Browsers are shipped with required codecs and other features required to process audio/video streams. Many companies and individual look for solutions where they can hold their own chat with other members e.g. one to one to group meetings. Some people are looking for private solution to help them teach online to their students. If you develop a realtime learning system where a teacher may teach online where multiple particpants attend the lecture from browsers and their mobiles phones on the go and may ask questions from teacher.  Option to record the live sessions may also be included. It would be good project for learning perspective. For example, you have to learn following technologies to develop it e.g. WebRTC, SIP, XMPP, RTP, etc. depending on architecture you use. These all, specially WebRTC is very demanding technology and there are very few developers of WebRTC. FYP spans complete year, new technologies can be learned very easily if there is enough motivation. Such technologies knowledge has potential to make your skillset unique.

13. One-Way Video Interview Conduction System

Lets say, an organization publish a job opening and 100 candidates apply from whome 20 get short listed for interview. Its requires great amount of time to call candidates for interview and time of senior resources is required to conduct interview. What we can do is, we can send them a link to portal where specific questions would appear at given time. The candidates have to record their response in given time and submit. It this way, we can get the real answer without wasting much time. Many related features can be added into it. If you got the basic idea, expanding it from scope perspective should not be a big issue. This idea would also help you to learn WebRTC and other related technolgoies, as I expalined in previous project introduction.

14. Fake Twitter Trends Detection System

To influence public opinion, many people and groups run fake accounts and publish tweets with hash tags of interest. Main stream media and commons users take them as genuine trends and they also start using those fake hash tags, thats give organic push to fake data. Twitter publish tweets data via REST APIs, we can also get live updates of recent tweets. The idea is make a system that can detect which trends are fake and what are genuine. Skills required Python, data analysis, machine learning, and web programming. To understand the severity of this matter, read this status of Umar Saif (former PITB Chairman and Founding Chancelor of ITU):





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

Advise: Do not pick an idea because it sounds interesting. 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
  3. sir tell me some ideas of fyp in angular

    ReplyDelete
  4. hi sir!
    can u plz help me in my FYP ?

    ReplyDelete
    Replies
    1. Sure. If you are from CUI, visit my office. Or send me an email at asifsh7@gmail.com with your exact query. I would try my best.

      Delete
  5. Hi sir!
    Can you please help me out in deciding my FYP (web based)...

    ReplyDelete
  6. Sir, If we decide to choose any one of the above topic, would there be any additional help from your side

    ReplyDelete
    Replies
    1. Nothing more than a discussion. As I don't not work in all of these areas. If you have some specific query, you can always send me an email (contact from on left side).

      Delete

Post a Comment