No edit summary |
No edit summary |
||
Line 61: | Line 61: | ||
-- Some other arguments can be ‘pkgname’ (takes package_name as value), tarfile, date,md5sum, sha256sum, sha1sum.<br\> | -- Some other arguments can be ‘pkgname’ (takes package_name as value), tarfile, date,md5sum, sha256sum, sha1sum.<br\> | ||
e.g. query for a file can be done as <br\> | e.g. query for a file can be done as <br\> | ||
GET apps.fedoraproject.org/ | GET apps.fedoraproject.org/shumgrepper?package=datagrepper&filename=app.py | ||
* Add methods in summershum that will return data according to the argument in the query. | * Add methods in summershum that will return data according to the argument in the query. | ||
* Format returned data in human and machine readable output like csv, json. | * Format returned data in human and machine readable output like csv, json. | ||
Line 108: | Line 108: | ||
* Front page may contain an odometer for count of different GPL Licence. | * Front page may contain an odometer for count of different GPL Licence. | ||
* Front page may also contain a graph (package name v/s number of times it is bundled). | * Front page may also contain a graph (package name v/s number of times it is bundled). | ||
I have made a demo front page: | |||
[[Image:front.png|600px]] | |||
* Embed a login system that ensures only authenticated users can use it. | * Embed a login system that ensures only authenticated users can use it. | ||
* Embed a challenge response(C/R) mechanism in the form of CAPTCHA. | * Embed a challenge response(C/R) mechanism in the form of CAPTCHA. |
Revision as of 15:20, 17 March 2014
Project Title : Shumgrepper
Personal Information |
|
Goal |
Shumgrepper is a web app built on the top of Summershum. Summershum is a project that collects md5sum, sha1sum and sha521sum of every file present in every package. This can be used to check how many packages have the full GPL license, how many files contains a particular hash sum in all Fedora or to check the database in taskotron test, etc. Shumgrepper will bring up lot of new possibilities to developers, system administers and commiters. It will allow them to verify the integrity and authenticity of a tarball, package or a individual source file. Not only this, it will help them in identifying suspicious changes made in packages by comparing check-sums. I will develop JSON/API along with Web front-end for the data generated by summershum. It will integrate most of the features of datagrepper along with user friendly real time visualization tool that will show ongoing changes in package hashes. The information related to package hashes is sensitive and can be vulnerable to various attack like DDos, So I will ensure security against it by taking appropriate security preventive measures. |
Project Details |
The project will mainly be divided into 5 phases.
|
Phase 1: Query building for Database |
In this phase of development I will add methods that will query summershum database to get required data.
-- One of the filtering arguments can be ‘filename’ which takes filename as value. GET apps.fedoraproject.org/shumgrepper?package=datagrepper&filename=app.py
|
Phase 2: Web API Wrapper of the app |
The development in this part is involved with defining the web API wrapper which involves defining the directory structure of the app. It also involves defining various end-points of the app. The implementation will be done using flask framework. Sample directory structure of the app: shumgrepper\ shumgrepper\ static\ css\ views.css templates\ index.html docs\ __init__.py views.py util.py summershum.models\ # files containing methods that will query summers-hum fedmsg.d\ # display fedmsg messages in human readable format run.py setup.py Flask has a great similarity with MVC architecture as it contains view (templates), controller (views.py) and the model (summershum). views.py contains definition for various end-points. |
Phase 3: Web-Frontend |
In this part of development my aim is to build user-friendly web interface. For this, I will use mako template library to build the web-front end for end-points defined in the earlier phase. Apart from this I will also design and build the front page of the app. As discussed earlier the website is suspected to various attack. One of the prominent can be DDoS attack. In order to prevent it, it is important to distinguish between legitimate website visitors and automated or malicious clients. The above mentioned strategies can be implemented in the following steps:
I have made a demo front page:
|
Phase 4: Cross-platform testing |
It involves integrating the app on other applications and testing it
|
Phase 5: Deployment |
In this phase i will deploy the package Shumgrepper in fedora production environment. This will enable users to install it in through yum. It involves the following steps:
|
Deriverables |
|
Timeline | ||||||||||||||||||||||||||
|
About Me |
In early May our summer vacation of college will start and ends by late of July; I can give my full time commitment to this project,. I assure dedication of at least 40 hours per week to the work and that I do not have any other obligations from early May till mid August. |
Past Experience |
I am Firefox Student Ambassador of my college and is involved in raising awareness about Open Source Software, FOSS organisation, Mozilla and its various products. I have always been involved in inspiring friends and juniors to contribute to open source projects. I have also given a talk in my institute to motivate people to apply for 'GSoc and OPW'. Besides this I have also organized many other coding events. Apart from this, I am always interested to get more and more women involved in free and open source software. |
OPW internship: Fedora-Datagrepper |
Link to pull requests: |