A simple REST API for a journaling application.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Dušan Mitrović 1f4cac25d8
Added encryption key generation to the key generation script
4 months ago
public Refactored the dependency container 7 months ago
src Add some doccomments 7 months ago
tests Add some more tests 7 months ago
.env.example Image Uploading now works 11 months ago
.gitignore Modify key generation script, remove secret key and service. 7 months ago
LICENSE Initial commit 🔥🔥🔥 1 year ago
README.md Update README.md 7 months ago
composer.json Begin Unit testing 7 months ago
composer.lock Edit the migrations to support sqlite 7 months ago
key_gen Added encryption key generation to the key generation script 4 months ago
phinx.php Finished LoginServiceTest 7 months ago
phpunit.xml Begin Unit testing 7 months ago


Journal API

A simple API for a journaling application

Table of Contents

Dependency installation

Dependencies are tracked through composer, to install them run:

composer install

Key generation

To generate encryption and signature keys, run the commands below:

chmod +x key_gen

Database migration

Provided you’ve filled in the neccessary information in the .env file (an example is found in .env.example) run the following command:

./vendor/bin/phinx migrate

Database seeding

If you wish to seed the database with random data for testing purposes run the following command:

./vendor/bin/phinx seed:run -s UserSeeder -s JournalSeeder -s ImageSeeder


Logging functionality is handled using the MongoDB database server. A local or MongoDB Atlas instance is required for normal operation. Supply the connection string in the .env file.

Running the application

Configure your favourite web server to point to the index.php file found in the public directory, a .htaccess file is provided for the Apache Web Server. If you wish to run the built in php development server for testing purposes run:

php -S <IP_ADDRESS>:<TCP_PORT> -t public/

Running tests

To run unit tests, run the following command:



Journal API is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

Journal API is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Journal API. If not, see https://opensource.org/licenses/GPL-3.0.