Personal Details
Name:Dhruv Baldawa
Email:dhruvbaldawa@gmail.com
Skype ID or GTalk:dhruvbaldawa@gmail.com
IRC nick:dhruvbaldawa
Phone number: +(91)-9323321233
School Name: Thakur College of Engineering and Technology, University of Mumbai
Years completed:Third Year Computer Engineering
Python Experience Level:Intermediate
Project Description
Describe your idea in detail:SQL
is a generic language and is the most common language used for database
querying. But, the problem with SQL is, when a new user fires a SQL
query, he needs to know 2 things :
- He needs to all the relations in the schema, and how are they related, and how are they linked using which attributes.
- When
a user needs to fire similar queries (similar means queries with almost
same entities), in such a case all the JOIN statements or linking
conditions have to be rewritten.
So,
here I propose a tool, which comprises of a metadata and syntax
generator, algorithm and query helper, which can help user create a
specialized syntax for querying the database in a simple and efficient
manner, ignoring all the linking between the various tables.
What have been done so far with this idea : I
have been developing a Paper Conference Management System for an
International Paper Conference which is conducted in our college, and
there are various queries and reports which are to be generated, but
considering the modularity of the software architecture and the
normalized databases, the SQL queries tend to become bigger and bigger
and making it difficult for the user who doesn't know the database
schema to generate reports. So, I have done a partial implementation of
this concept, in that project.The current code can be found at : http://conms.svn.sourceforge.net/viewvc/conms/conms/compiler.php?revision=59&view=markup
It is not complete, and may contain errors.
Vision: To
develop a robust system, which makes generation of SQL queries simpler
for the end-user, thus, empowering the user to generate database
queries/reports without any prior knowledge regarding the database
schema. The system can be condensed to form a tool, which automatically
generates the metadata, with the database schema provided along with an
algorithm to generate queries and a query helper tool.
Advantages:
- Uses Finite State Model, hence, is fast.
-
If the database schema changes, only the new metadata files have to be changed.
- The user need not type the monotonous JOIN statements or linking the attributes.
- Supports augmented attributes, for example, “name” can be replaced by “first_name” and “last_name”.
-
Supports null transitions.
- Supports linking of various tables.
Anticipated challenges:
- If the system, goes to a state multiple times, it would have same conditions added multiple times.
Solution : This has been taken care of by developing a query builder class, which ignores duplicate conditions and attributes. -
Ambiguity between same named attributes of various relations.
Solution : In the SQL query, the attributes are replaced by their relations_name.attribute_name.
- Using aggregate functions.
-
Using with tables which are designed as key/value pairs.
- Generating queries using “having” or “group by” clause.
Schedule of Deliverables
Milestones and deliverables schedule:
- April 25 - May 23 (28 days): Get
acquainted with the development cycle, version control systems. Read
various books on Django development. Study the current schema. Discuss
with mentors the current design and check for potential pitfalls and try
to modify the design the system in order to cover them. Develop a
initial standard for the metadata files.
- May 23 - May 13 (14 days): Design
the basic algorithm (including Lexical Analysis and Syntax Checker),
which takes the metadata files and the query, to generate the SQL query.
This also includes manual creation of metadata files and synthesis of
complex queries.
- June 13 - June 27 (14 days): Develop
the query helper tool, which helps user to build query. The tool shows
the valid inputs when user is present at a particular stage.
- June 27 - July 11 (14 days):Correct
any discrepancies in the system and prepare test cases and
documentation. Generate test reports and make sure the system is running
perfectly fine.
- July 15 –August 1 (17 days):Develop the metadata generator tool, which helps user customize the syntax and also edit the entities interacting in the system.
- August 1 - August 8 (7 days):The
entire system, integrated and checked. Revise the standard of the
metadata files. Correct the bugs which occur after the integration of
the system. Generate the test cases. Convert the module into various
independent libraries.
- August 8 - August 22 (14 days) :Start preparing the final documentation and perform the rigorous testing on the system.
Other commitments:None
Open Source Development Experience
- Developed website for All India Stainless Steel Industries Association (http://www.aissia.org)
- Developed Mass Mailing application
-
Developed Facebook Application (http://apps.facebook.com/invertendo)
- Developed website for College Technical Festival
-
Developed eBooks Repository Management application
- Mobile UI for Home Automation System
-
Developing a PHP Script Obfuscator
Other Open Source/Free Software Experience :
- Building a open-source Paper Conference Management System :http://sourceforge.net/projects/conms/
Work Experience
Work Experience:
- Developed Mass Mailing Software for a Company
-
Developed website for All India Stainless Steel Industries Association (www.aissia.org)
- Developed Mobile UI for Home Automation System for a Telecom firm
Academic Experience
Academic Institution:Thakur College of Engineering and Technology, University of Mumbai,
Mumbai, Maharashtra, India
Current Program:Bachelor of Engineering in Computer Engineering. Currently in 3rdyear (6th Semester).
Anticipated Graduation:December 2012
Academic Performance:
I am amongst the first 4 students in my department. My aggregate from previous 2 semesters is 76.82 %
The courses completed in college are :
- C++ Programming Language
-
Java Programming Language
- Analysis of Algorithms and Design
-
Data Structures and Files
- Computer Organization and Architecture
-
Computer Graphics
- Operating Systems
-
Computer Networks
- Theory of Computer Science
-
Database Management Systems
- Advanced Database Management Systems
-
Microprocessors
- Web Engineering
-
Advanced Computer Networks
- Advanced Microprocessors
-
Systems Programming and Compiler Construction
- Data Warehousing and Mining
-
Object Oriented Software Engineering