Chris Pollett > Students > He

    Print View


    [CS 297 Proposal]


    [Deliverable #1:EPUB.ppt]

    [Deliverable #2:an sample EPUB book]

    [Deliverable #3:JS Sequitur algorithm]

    [Deliverable #4:DB schema design]

    [CS297 Report PDF]

    [CS298 Proposal]

    [CS298 Report PDF]

    [CS298 Presentation PDF]

    [CS298 source code zip file]


CS298 Proposal

A Javascript and PHP EPUB reader web application

Xiaqing He (

Advisor: Dr. Chris Pollett

Committee Members: Dr. Austin

Committee Members: Dr. Tseng


EPUB, like PDF and Word, is a format for representing documents in electronic form. It is used by many eReaders such as iBooks, Blackberry Playbooks, Sony Reader and so on. There is also browser add-on for Firefox to read EPUB files. One drawback of eReaders is Platform lock-in, and one drawback of an add-on is the inability to easily sync page positions across multiple devices. In this project, we will create a pure Javascript web application for the EPUB format which will solve both of these problems.

CS297 Results

  • Learn what is EPUB and EPUB format
  • Create a sample EPUB file
  • Did research on several compression algorithm to understand how ZIP works
  • Implement one compression/decompression algorithm “SEQUITUR” using Javascript
  • Create a database schema to handle page position data for multiple users and books

Proposed Schedule

Week 1-2:8/25/14 – 9/7/14 Finish CS 298 Proposal
Week 3-5: 9/8/14 – 9/28/14 Implement a JS library to read and write ZIP files
Week 6-8: 9/22/14 – 10/19/14 Implement PHP API to handle page position data
Week 9-10: 10/20/14 – 11/2/14Complete the whole application
Week 11-13: 11/3/14 – 11/23/14 Testing + load + unit testing
Week 14-15: 11/24/14 -12/7/14 Complete all documentation for CS298 final report.
Week 16-17: 12/8/14- 12/22/14 Defense and final presentation.

Key Deliverables:

  • Software
    • A JS library to read and write ZIP files
    • PHP API to handle page position data
    • Cloud data storage
    • A workable EPUB reader application
  • Report
    • Detail description of software deliverables.
    • Final report and presentation

Innovations and Challenges

  • This application is platform independent
  • This application can easily sync page positions across multiple devices and scales
  • Create a pure Javascript library to read and write ZIP files
  • Implement PHP API to handle page data in database


[Garrish2011] What is EPUB 3? Matt Garrish, O'Reilly Media, 2011.

[Davies2012] Creating and formatting documents for e-readers using ePub, Davie,E , University of Leicester, 2012.

[Chris2013] Grammar-based compression algorithm SEQUITUR, Chris Pollett, San Jose State University, 2013.

[CakePHP2014] Guide of CakePHP: the rapid development php framework, Cake Software Foundation Inc.,, 2014.

[Wiki] References of compression and decompression with Javascript,