A casual, unstructured database, personal knowledge base, or personal content management system
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bootstrap
config
database
packages/imonroe
public
resources
routes
storage
tests
.env.example
.gitattributes
.gitignore
CHANGELOG.md
CONDUCT.md
CONTRIBUTING.md
ISSUE_TEMPLATE.md
LICENSE.md
PULL_REQUEST_TEMPLATE.md
artisan
composer.json
composer.lock
firstrun.php
package-lock.json
package.json
phpunit.xml
readme.md
server.php
webpack.mix.js

readme.md

Coldreader

Coldreader is a casual, personal databasing system.

It may be helpful to think of it as something half-way between an mindmap and a private wiki. I use it in place of Evernote, as a personal information management tool. Out of the box, it may seem a little trivial, but once you start building it out with your own custom Aspects, you'll find that there's really no other tool like it.

It makes no assumptions about what kind of information you want to keep track. In Coldreader, there are essentially two kinds of things: Subjects, and Aspects.

A Subject can contain an arbitrary number of Aspects. Aspects are like a single piece of content. That may be text, an image, an API result, and so forth. By itself, a basic Aspect just stores its information as text in the database. But you can extend simple aspects with a little bit of code so that they can behave however you like. By modifying the boilerplate with your own logic, you can retrieve API results, perform a calculation, whatever you like. For more information, see Developing Custom Aspects below.

Coldreader is primarily aimed at people who are comfortable with basic web development using PHP and Javascript. It's built using Laravel 5.6, Bootstrap 3, and Vue.js.

This is the open-source version. It is configured to support a single user, and includes some tools to make it easy to customize the system for your own uses.

Use cases:

  • Project management system
  • Personal CRM system
  • Build custom dashboards to track subjects of interest
  • Manage your collection of media
  • Track your notes and references as you research new things
  • Create a knowledgebase of problems you have previously solved
  • Keep a library of your favorite recipes
  • API test bed - quickly add new features by implementing an API and using your exising data
  • Organize your data however you like

Dependencies

  • PHP 7.2+
  • Composer (tested with version 1.6.4) If you're planning to develop with Coldreader, you'll need Node and NPM for Webpack/Vue.JS support.
  • Node.JS (tested with version 8.9.4)
  • npm (tested with version 5.6.0)

Install

Coldreader is based on Laravel 5.6, and requires a server that is capable of serving a Laravel project.

For specific information about server requirements, see the Laravel docs.

The Homestead vagrant box works just fine with Coldreader, and you can try it out in your local environment with no risk. For more information about using Laravel Homestead, check out their fantasic documentation.

Once you have an environment set up, you'll want to create a directory to hold the project, and an empty database. Make sure you note the credentials you set up for the database to make installation easy.

The simple way to install everything is to use Composer. If you plan on developing with Coldreader, you are encouraged to use the Git method.

Via Composer:

$ cd /wherever/you/want/to/install/
$ composer create-project imonroe/coldreader .

Follow the prompts.

Via Git

$ cd /wherever/you/want/to/install/
$ git clone https://github.com/imonroe/coldreader.git .

Wait for the installation to complete. Then run:

$ php firstrun.php

Follow the prompts.

The configuration script will ask if you'd like to install the npm dependencies. If you are planning on developing with Coldreader, you may want to do that now. It can take some time, however, and can safely be skipped if you're just trying out the software.

Installing additional add-ons

One of the nice things about Coldreader is that it's easy to create new Aspect Types and Search Providers to accomodate different kinds of data, and different ways of displaying it. There are some Aspect Types already available to try.

To install Coldreader add-on packages, use composer:

$ composer require <vendor>/<package_name>
$ composer update

Some add-on packages may require additional configuration. Consult the package repo for details for any individual add-on.

Add-ons currently available:

  • COMING SOON!

Developing with Coldreader

For instructions and examples for how to get started developing with Coldreader, please see the wiki.

Change log

Please see CHANGELOG for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email ian@ianmonroe.com instead of using the issue tracker.

Credits

License

GPL V3. Please see License File for more information.