Code Monkey home page Code Monkey logo

bookx's Introduction

Bookx_github_description

Bookx

Please do not theme this app

An MVP in progress:

  • Mockups
    • Mockup for Library
    • Mockup for Reader
    • Mockup for editor
  • An ebook reader with .epub support
    • Context menu for each book (delete, rename book, info)
    • On click switch the carousal to the book
  • Ebook editor for .epub files

Main window

Pronunciation

The app is pronounced just like "Books" but the "s" replaced with "x", as in an extension of something that manages your books. And not "Book-ex" :)

Build & Run the project

Building the project

flatpak install org.gnome.Sdk//43 org.freedesktop.Sdk.Extension.rust-stable//22.08 org.gnome.Platform//43
flatpak-builder --user flatpak_app build-aux/com.adhadse.Bookx.Devel.json

To run the project

flatpak-builder --run flatpak_app build-aux/com.adhadse.Bookx.Devel.json bookx

Please note that these commands are just for demonstration purposes. Normally this would be handled by your IDE, such as GNOME Builder or VS Code with the Flatpak extension.

Wanna learn? Come and Contribute!

For those doing there first-time contribution, check our good first issue.

  • Go through the issue, can you understand them? Talk to devs and understand how to proceed. And if yes, try compiling it on your system.
  • This project uses Rust, so a good understanding of Rust is prerequisite, check out The Rust Programming Language Book.
  • If interested in design, file an issue, explain your need, and update mockups!
  • This is a GNOME app, so do read GNOME Human Interface Guidelines, it's interesting what goes behind making apps for our users.
  • Beyond that even filing an issue and reporting failure and feedback is counted as contribution.

Dependency libraries and documentation is in _developer folder.

For seasoned folks, skip ignore good first issue, and dive in.

bookx's People

Contributors

adhadse avatar kianmeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bookx's Issues

Write `library/book/book_data.rs`

  • This will store BookxLibraryBookData struct storing:
    • identifier: id of book
    • _type: the type of book
    • storage: path to book
    • cache: cache dir for book
    • cover_path: cover path for book
    • view_set
    • annotations_map: annotations mapping from cfi to color
    • annotations_list: Liststore.
  • Method to implement:
    • load_data(): function to load data about book
    • add_annotation(): add annotations to book
    • remove_annotation(): remove annotations
    • add_bookmark(): add bookmark
    • remove_bookmark(): remove bookmark
    • add_view(): add view to view_set
    • delete_view(): delete view from view_set
    • save_cover(): save cover as png file to cache dir

Switch to MVC design pattern for `src` directory

Currently, the structure looks janky. My engineering skills should help me little bit.
Structure right now:

  • library: handles internal state of library
  • settings: global setting module
  • ui: handles everything related to UI.

Changes afterward:

  • models: module for model/data of individual components or entity here book, annotation, bookmark, how is it structured
  • views: how that model is going to be read to become usable for widgets.
  • widgets: forward facing module interacting with gtk widgets.

Take Read It Later as inspiration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.