Git Product home page Git Product logo

paperwork's Introduction

Paperwork - OpenSource note-taking & archiving

Build Status

paperwork-logo

Paperwork aims to be an open-source, self-hosted alternative to services like Evernote (R), Microsoft OneNote (R) or Google Keep (R).

Paperwork is written in PHP, utilising the beautiful Laravel 4 framework. It provides a modern web UI, built on top of AngularJS & Bootstrap 3, as well as an open API for third party integration.

For the back-end part a MySQL database stores everything. With such common requirements (Linux, Apache, MySQL, PHP), Paperwork will be able to run not only on dedicated servers, but also on small to mid-size NAS devices (Synology (R), QNAP (R), etc.).

Screenshots (might not be up to date, please use the demo below!)

01 02 03 04 05 06 07

Demo (yes, there is one!)

At demo.paperwork.rocks you can actually see the current development status of Paperwork. Every night at 3am (CET) the database is being dropped and newly created, and the latest sources from GitHub are being deployed on the machine.

Feel free to create/modify/delete accounts, notebooks and notes. This demo can be used for heavy playing without regrets. Just try not to take down that thing. :)

Initial installation (quick & dirty documented)

First of all, you need to clone this project to your machine. After that, make sure that you have one of the latest PHP versions > 5.1 and an up-to-date "composer" installed. If you're not sure how composer works, please continue reading here: https://getcomposer.org/

Second, you need to switch to the command line: "cd" into the "frontend" directory of your local paperwork clone. There, run "composer install" and/or "composer update". This will install all the needed dependencies.

Now, before you do anything else, please check the files within the frontend/app/config/ directory. Especially the database.php. If you'd like to use the default DB settings (MySQL/MariaDB), you'll just need to have the database server running on port 3306 and create a database named "paperwork". You could use this SQL:

DROP DATABASE IF EXISTS paperwork; CREATE DATABASE IF NOT EXISTS paperwork DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

In addition, you need the "paperwork" user to have full access to this database:

GRANT ALL PRIVILEGES ON paperwork.* TO 'paperwork'@'localhost' IDENTIFIED BY 'paperwork' WITH GRANT OPTION; FLUSH PRIVILEGES;

With these settings, you won't need to modify the database.php configuration file.

After completing these steps, run the migration jobs, that fill the database:

php artisan migrate

If anything here should fail, it's most likely an authentication/connection issue, so check your database setup again.

Now, for the last step, make sure that your webserver has the right to create/modify/delete files within the frontend/app/storage/attachments/, the frontend/app/storage/cache/, the frontend/app/storage/logs/ and the frontend/app/storage/sessions/ folders. Also, be sure to set the document root (docroot) of your webserver to the folder frontend/public/.

That's pretty much it. From here on, you should be able to access your paperwork instance through the web.

Run using Docker

Basically you just have to:

fig up

To run the migrations (once):

fig run web php artisan migrate --force

Upgrading

Upgrading to the latest GIT version of Paperwork is fairly easy. Update your local repository running git pull, then cd into the frontend/ directory and run php artisan migrate. In most cases this should work. If you're experiencing issues, you might need to clear the database completely and re-run the initial installation.

API documentation

The API documentation can be found at docs.paperwork.apiary.io or built using the apiary.apib file from this repository. It's not yet complete and could change at any time!

Developing

Developing on Paperwork is fairly easy for anyone who's familiar with Laravel 4. Within frontend/app/ all internal code can be found, including all source LESS and JavaScript files that are being used to generate the output files that lie in frontend/public/css/ and frontend/public/js.

If you need to modify the stylesheet or JavaScript, DO NOT TOUCH ANY OF THE FILES IN frontend/public/, as they will be overwritten by the generator process. Instead, modify the files in frontend/app/less/ and frontend/app/js/. For building, you'll need Gulp.js.

Switch into frontend directory on a command line and execute the following:

npm install

npm will install all dependencies required through the package.json, so that you'll be able to run the generator process yourself. For doing so, simply run the command gulp within your frontend directory.

Some last words

The current development status is far from being worth called "version 1.0". However, if I could get you interested in this project and you feel like contributing, don't hesitate to ping me by e-mail ([email protected]) or twitter (@devilx) so we can talk. :-)

FAQ

Can I run Paperwork on a shared host environment, where I'm not able to set frontend/public as document root?

Basically you can. This has nothing to do with Paperwork specifically, though. The foundation ontop of which Paperwork is built up (Laravel) needs to be reconfigured to support a shared host environment. Here you can find more info about how to do so.

Are you planning to implement ... into Paperwork soon?

Maybe. Check out more detailed information about the features we are currently working on here.

I would like to join Paperwork development, what's the best way to do so?

Contribute. Simply fork the Paperwork repository here on GitHub, add your contributions and send us pull-requests. In addition, make sure to shoot us an e-mail at [email protected] and inform us about your interest in joining the team. We will then make sure to give you the required access to our GitHub Issues as well.

paperwork's People

Contributors

aspangaro avatar bsingr avatar joshlemer avatar liongold avatar mrusme avatar ponychicken avatar rguedes avatar vishalsodani 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.