Chris Pollett > Students >
Sugi

    ( Print View )

    [Bio]

    [Project Blog]

    [CS 297 Proposal]

    [Intro to jQuery and YUI - PDF]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [CS 297 Report - PDF]

    [CS 298 Proposal]

    [CS 298 Report - PDF]

    [CS 298 Slides - PPT]

    [CS 298 Codes - Zip]

                          

























CS298 Proposal

Web-based IDE to create Model and Controller Components for MVC-based Web Applications on CakePHP

Sugiharto Widjaja (sugi@widjaja-online.com)

Advisor: Dr. Chris Pollett

Committee Members: Dr. Mark Stamp (stamp@cs.sjsu.edu) and Dr. Sami Khuri (khuri@cs.sjsu.edu)

Abstract:

The purpose of this project is to develop a Web-based IDE that will allow users to easily create Model and Controller components of a Web application on CakePHP. By using this IDE, users do not need to have extensive knowledge of SQL and do not need to deal with complex SQL queries. Users will be able to design any number of database tables, and the IDE should create the database tables automatically. In addition to creating database tables, users will also be able to design complex queries to insert and retrieve data. The IDE will be able to automatically create PHP scripts for the Model and Controller components. It will populate the Model script with all the queries that are designed by the users. The IDE would also include defense mechanisms against popular attacks such as cross-site scripting attacks or SQL injection attacks.

CS297 Results

  • Set up CakePHP framework and integrated it with MAMP (Mac, Apache, MySQL, and PHP) package for localhost development
  • Learned jQuery JavaScript framework
  • Implemented a Web application that utilized drag-and-drop feature of jQuery
  • Learned Walterzorn JavaScript graphics library and used it to draw lines on HTML pages
  • Implemented a Web application that can be used to construct database tables, relationships, and queries

Proposed Schedule

Week 1 - 2: 08/25 - 09/08 Designing the architecture of the IDE
Week 3: 09/09 - 09/15 Designing the complete GUI for the IDE
Week 4 - 6: 09/16 - 10/06 Deliverable 1
  • DB/Tables/Relationships Creations
  • Queries creation by using QBE (Query by Example))
  • Import the SQL queries to various file formats (.sql, .xml, .csv, etc)
  • Export the DB, tables, relationships, and queries from the Metadata files
  • Support of aggregate SQL Queries (AVG, COUNT, MAX, MIN, SUM)
Week 7 - 8: 10/07 - 10/20 Deliverable 2
  • Auto Creation of Controller and Model .php scripts
  • Help/Tutorial System
  • Implementing the defense mechanisms against attacks (such as: XSS and SQL injections) to the IDE
Week 9 - 11: 10/14 - 11/10 Integration of the IDE to CakePHP Framework
Week 12 - 13: 11/11 - 11/24 Work on the CS 298 Final Report
Week 14: 11/25 - 12/01 Complete and submit draft report for committee members
Week 15: 12/02 - 12/08 Prepare presentation slides
Week 16: 12/09 - 12/16 Oral Defense

Key Deliverables:

  • Software
    • Deliverable 1
      • DB/Tables/Relationships Creations
      • Queries creation by using QBE (Query by Example))
      • Import the SQL queries to various file formats (.sql, .xml, .csv, etc)
      • Export the DB, tables, relationships, and queries from the Metadata file
      • Support of aggregate SQL Queries (AVG, COUNT, MAX, MIN, SUM)
    • Deliverable 2
      • Auto Creation of Controller and Model .php scripts
      • Help/Tutorial System
      • Implementing the defense mechanisms against attacks (such as: XSS and SQL injections) to the IDE
  • Report
    • Final Report - The final report will be consisted of detailed description of :
      • The software and technologies used
      • The architecture of the IDE
      • The features of the IDE

Innovations and Challenges

  • Developing the architecture for the IDE that will enhance its scalability
  • Understanding several famous attacks against Web application (example: XSS and SQL Injection attacks) and implementing defense mechanisms against them.

References:

CakePHP Manual. Retrieved December 7th 2009 from CakePHP Website: http://book.cakephp.org/

jQuery documentation. Retrieved May 4th 2010, from http://docs.jquery.com/Main_Page

jQuery UI documentation. Retrieved May 4th 2010, from http://jqueryui.com/demos/

[2002] Database Systems: The Complete Book. Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom. Prentice Hall. 2002

[2005] Database System Concepts. Avi Silberschatz, Henry F. Korth, and S. Sudarshan. McGraw-Hill. 2005