Giter VIP home page Giter VIP logo

codex's Introduction

Codex

What is it?

Codex is an application for managing your PDF files. If you're anything like me, and since you're reading this you're probably at least somewhat like me, you have a large collection of PDF files that you don't know what to do with. Codex is intended to make managing these files easier by attaching metadata to them. Currently, you can specify the authors of the files, assign documents to categories, and rename those files based on a pattern, much like ID3 editors for MP3 files allow you to do.

Codex stores all your metadata in an SQLite database. It leaves files on the disk unchanged, except when you explicitly tell it to rename them. The files themselves are not indexed, so you can't search inside the PDFs, at least not yet.

So it's like a shittier Papers then?

Short answer: Yes. Much shittier.

Longer answer: The problem with Papers is that it's very opinionated about how everything should be done. It's a full-blown citations manager with lots of bells and whistles, but what it lacked for me was the very basic functionality of renaming files according to a pattern. Although Codex might add citations and other such things in the future, I'm currently using it primarily to organize my PDFs at scale.

Plus, if I'd just bought Papers I'd never have gotten into the exciting world of Gtk GUI programming.

Requirements

You'll need Gtk3+ along with PyGObject and all of its introspection facilities. You should be able to get all of that via your favorite package manager. Besides that, the two other external dependencies are sqlalchemy for the ORM, alembic for migrations (coming soon), and pdfminer for extracting metadata on import.

This code is only tested with Python 3 on Linux. For all other operating systems, all bets are off. To run, git clone and then run python src/main.py.

This sucks/is garbage/doesn't do [insert thing you wish it did]

Tell me about it. No, really, leave an issue. This is a hobby project and a work in progress. I promise nothing.

Future functionality

Below is a nonexhaustive list of things I'm thinking about adding:

* Imports from various websites e.g. arXiv and JSTOR
* Citations/bibliographic generation
* Publications
* Author affiliations
* More configurability i.e. preferences
* Search
* PDF indexing
* Python packaging

These may or may not be added in any particular order, as it suits me and I have the time and inclination. Feel free to contribute a PR if you like.

codex's People

Contributors

grapesmoker avatar

Watchers

 avatar  avatar

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.