A new Flutter project, Changes your experience with books!
Copia is an application used to store PDFs as books.
- 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.
- 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.
- 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
- 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
- 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.
- 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.
- Handling all errors & exceptions with dialogs. (For User experience)
- Complete Code Refactor
- Ensure Clean code
- Complete API documentation.
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.
When the user opens the home screen page , A list of 5 books appears in the Your books part.
- 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
- 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)
- 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.
- 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.
- 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.
- 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.
- The user can decide whether the PDF orientation is vertical or horizontal.
- The user can add a note per page (similar to bookmarks).
- 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.
- The user can save the current page to gallery.
- All pictures saved are under a folder named "Copia".
- 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.
- 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.
- 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
-
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.
- The user could see their reading statistics through the Statistics screen.
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 .
The Upcoming features will be divided to certain Patches during a 9 months period
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.
- Deploy IOS version.
- Adding new brochures , Posters & fixing bugs.
- Running an online survey to see what to add next to the application.
Developed at two stages :
- 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.
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!!
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.
September -> October:
- Adding reading streaks (for concecutive days) with trophies.
- Adding a detailed daily statistics about time and pages read.
- Bug fixes
- Make Copia app an open PDF file suggestion.
- Add drawing pages (Can draw or write whatever the user wants) for every PDF.
- Bug fixes.
- Connect Copia to cloud database.
- Bug fixes.