Submit Web Technologies' Semester Project Proposals

Nature of Project for Web Technologies Course

You would develop a web based system, application or proof of concept code samples (depending on nature of the semester project you choose). The project include, but not limited to, following types:
  1. Develop a Management Information System (MIS) e.g. accounts management system, fleet management, school management system, assets management system, application processing system, sale management systems, pathology management system, etc. If if you select such MIS, make sure it contains at least 12 to 15 tables and there are at least 8 usecases per group-member.
  2. The project may be a web or mobile product based on your unique business idea that would deliver some unique value to users if you launch it. In this case, there may be less number of use cases and database tables, but you have to justify its uniqueness in your proposal explaining market need, other competitive products and how your idea or product is unique or why user would use it.
  3. It may be the development of proof-of-concept code samples with brief writeup to demonstrate you learned some new and useful technology or framework. These technologies inclulde following: Apache Hadoop, Apache Spark, Elasticsearch, Apache Solr, Apache Nutch, Apache ofBiz, Apache Camel, etc. You can choose some other too. If you decide to work on anyone of given list, please visit my office in office-hours to discuss what use cases or proof-of-concepts code samples you should make. Plesae, visit after studying it a little.
  4. Or, do work of at least 200 USD on Upwork.com or fiverr.com for non-Pakistani client. It would be considered as one-student project (not group based). The profile name must be on your name and you shall submit your profile and projects completed screen shot/s as proof that you did this work during this semester. The work include development of website or web based system using PHP, Java, or any other language. Graphic design, data entry, HTML, etc. projects would not be accepted. 
Your proposal shall be a 2-3 pages document having following sections: 
  1. Introduction that shall contain: why you are working on this, its commercial need/value, or how it is unique (if you think it is) 
  2. List of use cases you would implement / explore (depending on the project nature). 
  3. What each group member would do e.g. member name with task assigned.
  4. Analysis of related products (if you are working on new business idea)

About Group Members

There shall be 2-3 members in one group. I recommend 2, but you can work solo or make a group of 3 members too. Please note: Each member have to justify his/her own contribution to its 2 months of development work, there is no such thing i.e. “we did this together”.

Plagiarism

Copy or failure to defend your contribution result in 0 marks. F in project mean, F in course. Take risk very carefully.

Project Weight

Project weight is too high, 7% of theory and lab assignments and 25% of lab and theory.

Evaluation

There would be two evaluations, in 2nd last week before s2 and 2nd last weeks before terminal. 40% marks would be evaluated in evaluation-1 and remaining 60% in evaluation-2. In first evaluation, you would present what you have done, show me working code samples, and submit progress report 1 as assignment 3. If you planned to work on new technology, you must have to present what you have learned/explored and implemented by that time. Contents of progress report would be based on nature of project you selected, you can discuss in lab if you are not clear what exactly you should write for your specific project.
Web Framework or Technology

If your project is related to an MIS, you must use Laravel or any other MVC framework. I recommend you use Laravel at backend and AngularJS at frontend (you have to learn AngularJS by your own, self-learning is part of your project and you would be given marks based on things you learned in evaluation 1, you must have to show the working code samples that you developed during learning). Use of AngularJS is not mandatory. If you implemented your project in something I have not taught, it would be a plus point e.g. AngularJS, ASP.NET, VueJS, ReactJS and Ruby on Rails, etc.

List of Potential Projects

You may choose any project based on guidelines given in Nature of Project section but here is a list of projects that I suggest you to consider working on. Registration would be based on first-come-first-serve base (visit my office or reserve in lab). Please note, these are very challenging projects, you should take it only if you are confident at your programming and self-learning skill, definitely you also get good reward if you do it.
  1. WordPress Plugin for Search: Wordpress do not allow to search based on different fields. It do not provide auto complete, query suggest, spell correction, geographical search, etc. Develop a Wordpress plug-in that shall index Wordpress data (including custom attributes) and provide a UI that user would use to search. You should use Elasticsearch to index and search the data. If must implemented following use cases: auto-suggest (as Google do when we type search terms), facets, spell correction, geospatial search, keyword search from title and post body, etc.). See following to get better understanding of this idea: https://wordpress.org/plugins/elasticpress/ https://wordpress.org/plugins/fantastic-elasticsearch/
  2. Auto Generate SOAP Services: Learn creating SOAP Web Services and write Java code that automatically generates services from database design i.e. from URL of MySQL database schema. Services must allow to perform CRUD operation for each table. You must use Java programming language, JAX-WS and its reference implementation. For database connectivity, you may use JDBC, Spring JDBC Template, or Hibernate etc. (no restriction). Auto code generator shall handle following columns types of MySQL: int, float, double, bigint, varchar, date, datetime, tinyint (1) / boolean and text.
  3. Custom Ranking using ElasticSearch: ElasticSearch is a search solution that means if you have millions or even billions of records and you want to provide highly efficient search to users, ElasticSearch is the solution you should integrate with your web or desktop software. In this project, you shall implement a customized ranking algorithm in ElasticSearch. For example, if we have stored 100,000 movies information e.g. title, year, actors, description, etc. with movie reviews (multiple ratings for each movie, a value from 1-5 star, higher the better) in ElasticSearch. When user search by keywords: we should give 30% weight to movie rating, 30% to year released in (recent the better) and 40% to keywords entered by user. These percentages shall be configurable. By default, ElasticSearch give 100% weight to keywords the user entered. You need to understand what is ElasticSearch, how it work, what are its main features, how its default relevance ranking work and finally how to implement our custom ranking metho into ElasticSearch.
  4. Website Downloader: Assume there is a website e.g. ciitlahore.edu.pk. Write a program that shall download the website including its all requires resources e.g. images, styles, javascripts, etc. such that when I open the index.html page from your created folder, the website shall open in chrome, and all links should work/open from same folder. It shall not load anything from the internet. But some websites contains millions of pages e.g. Wikipedia.com …so your program shall take two parameters as input i.e. number of maximum pages the program shall download and depth level of link e.g. 4 depth level means, the home pages, pages that are linked at home page, pages that are linked at those page, up-to 4 levels. Your program shall download all pages in one folders, all required resources in sub folders, zip the main folder and download at user computer. You must use Apache Nutch to download the website. How it would be useful: assume I am going to a place, where there is no internet but I want to study all tutorials given at a particular website. I would download that website using you program. And open it from my local folder later. It shall work, even when there is no internet available. If you make this software as web application, would get extra marks. If you could configure Nutch on multiple servers where all download millions of pages in parallel, you would get at least 90% marks in project. Use Java language for it.
  5. Facebook API Integration: Facebook have developed API that you can use to interact with Facebook. For example, you can make status update, update it, upload photos, create page, post on page, post video / images, text status on page, etc. In this project you are required to list all the features that Facebook allow to do programmatically (given the user allowed), and implement those features in different proof –of-concept sample codes. You must implemented at least 30 features. Use PHP or Java.
  6. Facebook Marketing Automation: Facebook as published marketing API. Assume, a client is running an ecommerce store where people sell their products. He want to allow his users (online sellers) to promote their products at Facebook. For example, if 100 users ask to promote their 500 products at Facebook in a day. Its time consuming to setup the marketing campaigns manually as it would take a lot of time of the client. In this project you are required to create Campaigns, Ad Sets, Ads, Audiences, and Creative etc. by calling Facebook Marketing API. So that, the client may setup marketing campaigns of 500 products on single click i.e. using your website. You must create this product as a web application. You must also create target audience automatically based on product keywords. You should use keywords from products description, name, category, etc. assume each product has information about type of target-customer that may be interested in the product e.g. age range, gender etc. You should use this info to create campaign audience intelligently, so that, the product ad is displayed to potential customers at FB.
  7. BlockChain and Crypto Currency: In this project, you would learn BlockChain and what are CryptoCurrencies, how they work and built. Make proof of concept code samples for 5 different use cases of BlockChain and create a new Crypto-Currency with good enough understanding how these technologies work. You would be asked to give a presentation to class on this topic.
  8. Google Cloud APIs: Google has exposed many state-of-the-art and highly scalable services related to machine learning and others via RESTful API on web. That mean, as web developers, we must be able to integrate these services into our web/desktop softwares by calling these APIs. In this project you would develop proof of concept code samples, with brief writeups, of how to use major features of: Job discovery, Vision API, Natural Language API and Translation API.
  9. ElasticSearch: ElasticSearch is search solution that is very powerful. In this project you are supposed to explore how ElasticSearch work and develop code samples of all of its different features with brief writeups. The code samples shall be developed in Java. These include: keyword search, facets, more like this, geo-spatial search, real time indexing, filters, rich document parsing, spell correction, auto suggest, and custom plugins integration, etc.
  10. Build and Search from Ontologies: In Semantic Web, "data in web pages is structured and tagged in such a way that it can be read directly by computers." But the problem is, human can understand unstructured text but machines/programs work better on structured data. That means, if we want machine to understand and query data, we must have to store it in special way, called knowledge graph or ontologies. There exist techniques that transform the unstructured data into structured one which is stored as ontologies or knowledge graph so that it may be programmatically queried. To understand whats mean by all this, consider an example: if we convert all Pakistan history into a knowledge graph or ontologies, we can build a program that answers the questions like: list the major causes of an <historical event> and its effects on the sub-continent.
    DBPedia is a knowledge base that is built from wikipedia pages - automatically. Building knowledge base or ontologies from unstructured data is not possible at your level, as it requires Natural Language Processing and Machine Learning courses. But you can at least understand, what are ontologies, how we can build an ontology, which query language is used to find information from an ontology, working code samples that create and search information from ontologies using that query language. And how to use DBPedia knowledge base in our program. In this project, you would make code samples of all these things. If you choose this, you would get an opportunity to give 30 minutes presentation to class.

Comments