/Copia

Copia is an application used to store PDFs as books.

Primary LanguageDart

Copia

A new Flutter project, Changes your experience with books!

Link on google play.

Getting Started

Copia is an application used to store PDFs as books. owl_iphonesespacegrey_portrait

It allows you to :

  • Choose whatever your pdf is.
  • Assign a title and a descriptive image to your pdf.
  • Add bookmarks to pages in your pdf.
  • You can add an audio with your pdf to listen while you're reading.
  • You can add document (doc , docx) to your pdf to view while reading.
  • You can add custom notes to every page in your pdf.
  • Also , gives you statistics of how many hours have you read a certain PDF , when was the last time you opened it and when did you create the file.
  • No internet access needed , all stored locally.

Release dates & notes :

2 June 2020

  • Copia 1.0.0 was sent to publication in google play store.
  • The initial release contained all of the first 12 tasks.
  • Verified by play store on 5/6/2020.
  • The next update estimated to be after two months.

13 June 2020

  • Copia 1.0.1 was the new update on google play store.
  • The second release covered the first update milestone.
  • Verified by play store after 3 hours from the release.
  • The next update estimated to be after 1 month.
  • Clicks on link to store at 14 June 11:16 am are 477 clicks

15 June 2020

  • Copia 1.0.1+3 was released as an immediate update on play store.
  • The third release was published due to bugs in the copia file picker and image picker.discussed below

Project technical structures :

  • Uses Hive as local storage database.
  • Uses flutter_sound as the flutter audio player.
  • Uses Provider as state management solution.
  • Uses SharedPerefences as key-value holder. (Can use Hive)
  • Uses GoogleFonts for Font UI perefrences.
  • Uses native_pdf_view as a PDF renderer library.

Tasks :

  • App Logo & Splash Screen
  • Intro screen
  • Audio Screen
  • Document Screen
  • Save Screenshot to gallery.
  • Share a screenshot of the current page
  • Search PDF Screen
  • Add notes screen
  • Bookmarks Screen
  • Statistics Screen
  • Share PDF file
  • Complete UI refactor.

Postponed tasks after production:

  • Handling all errors & exceptions with dialogs. (For User experience)
  • Complete Code Refactor
  • Ensure Clean code
  • Complete API documentation.

Intro Screen

Screen Shot 2020-05-15 at 1 37 25 AM

The user enters the application , then will find 4 screens known as "On-boarding screens"

  • This will briefly describe the copia application.
  • Along with beautiful svg assets.
  • The user can skip the whole intro and jump to the controller screen.
  • Using SharedPrefences to identify if this the user's first time to enter the application.
  • The next screen is the controller screen which controls the home screen.

Controller Screen

Home screen

copiaHomeScreen

When the user opens the home screen page , A list of 5 books appears in the Your books part.

copiaAddPdf

  • The user could do 3 commands :
    • Add new PDF
    • The user adds a PDF title , the pdf source & PDF thumbnail representing the PDF.
    • View All PDFs
    • View the last opened PDF

PDF Screen

Screen Shot 2020-05-14 at 8 24 29 AM

  • The Floating action button (owl icon) (bottom-right) is the main PDF icon manager , it controls the PDF screen features
  • It expands and minimizes once clicked on.
  • It dissapears once clicked on the PDF itself. (to give the reader comfort time while reading)

copiaPdfMenu

Owl Fab components :

Bookmarks (Heart icon)

  • The user can bookmark a certain page in the PDF. It has 2 expected behaviours :
  • When clicked at first (assuming that the page isn't bookmarked) , the heart turns to red , and the page number is updated in the database.
  • When clicked (assuming that the page is already bookmarked) , the heart returns to the original color , and the page number is removed from the database.

Bookmarks List

  • The bookmarks list contains a list with the bookmarked pages in the PDF , if there's no bookmarked page , then it displays nothing rather than "You don't have any bookmarked pages! ". if there's items , then it displays the list of items. on clicking on each item the PDF view animates forward to the selected bookmarked page.

PDF audio

  • The user can choose any audio they want to play along the PDF while reading.
  • At first the audio is null (assuming that the user didn't add any audio yet) , then when the user adds a new audio , the audio bar appears in the bottom navigation bar of PDFScreen.
  • The user can Play ,Pause & Seek to a certain duration through the audio.
Use case :
  • Say that there's a PDF about technological topic i.e. "Scrum vs Kanban" , The user would like to add an audio of technical debate between Kanban and Scrum while reading the PDF.

Orientation

  • The user can decide whether the PDF orientation is vertical or horizontal.

Add notes

  • The user can add a note per page (similar to bookmarks).
The note structure is as follows :
  • The notes are Map<int,String> where the int is the currentPage number (The page where the note is written into) , and the String is the note content.
  • If the notes are null (assuming that this is the first time for the user to open application & didn't add yet any notes) then a TextField appears to add a new note to the page.

PdfScreenshot

Pdf Document

  • Sometimes , Users want an alternative document to the PDF file , or a supporting document file.
  • Each Pdf can add one document only attached to it.
  • The user can add a certain document of doc,docx extenstion.
  • The user then can open the document using a helper application such as Word , google docs or any other application.
  • The user can replace , delete or open the document wherever they want.

Share PDF page

  • Similar to PdfScreenshot , The user can share the pdf page with other users through the social media apps or email or any other media.
  • The outputed picture is a screenshot of the current Page with copia logo appearing top-left the screen.
  • A companion message is delivered with the outputted picture.

Search PDF page

copiaSearchScreen

  • The user can view all pdfs they entered in the Copia application.
  • The user has 3 options in this page :
    • Search
    • Delete PDF
    • Share PDF

searchscreen

  • The user can search whatever terminlogy they want , they can search for a specific pdfTitle , if title isn't found then searches within the filename basename (path).

  • Also the user can delete the PDF permenantly or share it with other users on social media.

Statistics Screen

statsScreen

  • The user could see their reading statistics through the Statistics screen.

The Statistics screen structure is as follows :

There are two types of statistics :

Statistics for every PDF. (Specific Statistics)

Which shows :

  • Last PDF opened.
  • Date of creation of every PDF.
  • How much hours , minutes did the reader read a specific PDF
  • Most opened PDF.
  • Total bookmarks of the PDF.

Statistics for all PDFs (General Statistics)

  • Number of PDfs the user has.
  • Total hours spent on the application.
  • Total audio files on the application.
  • Total document files on the application.
  • Total pages bookmarked in the application.

Also , all above statistics are supported by different kind of charts .

Upcoming features :

The Upcoming features will be divided to certain Patches during a 9 months period

Overall Patches:

First four updates:

Copia 1.0.1 , 1.0.2 , 1.0.3 , 2.0.0 :

  • Connect Copia to cloud database.
  • A marker to mark certain parts in the page.
  • Changes in UI.
  • Implementing light mode.
  • Document text to speech.
  • PDF to document.
  • The user could share their stats on social media platforms.
  • Adding reading streaks (for concecutive days) with trophies.
  • Adding a detailed daily statistics about time and pages read.
  • Make Copia app an open PDF file suggestion.
  • Implementing night mode.
  • Add drawing pages (Can draw or write whatever the user wants) for every PDF.
  • Add Onsignal notification manager .
  • The user can edit notes .
  • A list contains the notes of the user and the number of their pages to easily navigate between them.
  • Include notes in statistics .

Second four updates :

  • Add Arabic , Japanese & hindu languages.
  • Add reading mode. (brightness)
  • Can rotate each page individually.
  • Copia users can send PDFs to each other through Copia, which copy audio , doc files , PDF , notes & bookmarks.
  • Get PDFS from URL.
  • Add Quote maker (WHich gives an image and a quote with certain font size) and make a quote.

Far upcoming features :

  • Deploy IOS version.

Continuous development Strategy :

  • Adding new brochures , Posters & fixing bugs.
  • Running an online survey to see what to add next to the application.

Patch notes 1.0.1+2 :

Developed at two stages :

First stage :

  • Changes in UI. Changes to Neumorphic design
  • Bug fixes.

Bugs at first release:

Critical bugs

  • Audio dissapears permenantly.
  • The bookmarked page dissappears from the list (in DB) randomly.

Second stage :

Bugs on version 1.0.1 :

second release

  • Disable return button in controller screen .
  • Add Audio top bar notification.
  • Screen orientation bugs.
  • Slow animation on some devices.
  • Some UI bugs (Neumorphic dialog & add document button).

Critical bug

  • Onboarding screen refactor ( Causes trouble in screens)

Deadly bug

  • Items loaded (either PDF or image) are stored in caches , which make the application after some time deletes it. That's an experimental guess

  • So , an update on 15 June is very important!!

Features suggested by users after the second release :

Added to milestones

  • Convert PDF to document & make it audible.(Using firebase ghostscript)
  • Can edit the screen configurations to make it Reading mode for users eyes.
  • Add Arabic language.
  • Get PDFS from URL.

Milestone of third release :

July -> September:

  • A marker to mark certain parts in the page.
  • Implementing night mode. Implemented in the first update with neumorphic design
  • Implementing light mode.
  • Document text to speech.

Patch notes 1.0.2+3 :

September -> October:

  • Adding reading streaks (for concecutive days) with trophies.
  • Adding a detailed daily statistics about time and pages read.
  • Bug fixes

Patch notes 1.1.0 :

  • Make Copia app an open PDF file suggestion.
  • Add drawing pages (Can draw or write whatever the user wants) for every PDF.
  • Bug fixes.

Patch notes 2.0 :

  • Connect Copia to cloud database.
  • Bug fixes.