/ODEV2

Open Data Events (ODE) is about open-data calendars

Primary LanguagePHPOtherNOASSERTION

ODEV2

Open Data Events (ODE) is about open-data calendars and public events.

It consists in a CalDAV server endpoint, a full website, and a REST API.

ODE is created to propose an alternative to closed-source, closed-data or vendor locking online calendars services. It allows everyone to maintain its own calendar service, to import, expose and share events information.

Demo : projet-ode.org

Project history (fr)

License, Copyright & Contributeurs

(c) 2015 LiberTIC

Licence: MIT (X11)

Made in Nantes, France @ Les Polypodes

Contributors

Requirements

Resources

RAM: PHP's package manager, composer, internally increases the memory_limit to 1G. To get the current memory_limit value, run:

php -r "echo ini_get('memory_limit').PHP_EOL;"

If composer shows memory errors on some commands check out this documentation.

Installation, option 1: the Docker way

The docker/docker-compose.yml file already configure and install a working stack: Nginx web server, PHP-FPM, Postgresql, etc. A dedicated Makefile run the all needed operations.

Make sure your Docker local installation is OK, with both docker and docker-compose available commands, then call the docker/Makefile tasks:

cd docker
make               <-- build containers from images
make install       <-- database init (to be run once only) + run

That's it.

Once database is OK, next containers reboots only require this:

make run           <-- = docker-compose -up -d

Installation, option 2: Using the Makefile

The install process warns you about requirements and configuration of Apache2, PHP5, PostgreSQL, etc.: Make sure you they are already available and running in you environment.

Mac OS X users, you may want to install PostgreSQL easely, using postgresApp

git clone https://github.com/LiberTIC/ODEV2.git
cd ODEV2
make
make install

Locally, you may then use the PHP Built-in web server to run ODE:

php app/console server:run

And then open (OS X) or xdg-open (GNU/Linux) the working URL: http://127.0.0.1:8000

Installation for production environment

You can find more informations (Apache2 vhost configuration example, etc.) on how to go live here

Database daily tasks

The Makefile is to be used in your (local) webserver environment. Note that a D special, Docker-related Makefile also exists in the docker folder.

Database init: make install already performs the role and database creation through SQL scripts and initial data: you do not need to run these commands below at first install. By the way, all PostgreSQL related Makefile commands are explicit, in order to let you tweak them, to fit better with your environment.

Available PostgreSQL related commands:

make createDb       # Creates PostgreSQL database ODE
make pgCreateRole   # Creates ODE role using doc/postgresql/role.sql
make pgInit         # Initializes ODE db using doc/pstgresql/init.dump
make pgDump         # Creates a restorable snapshot of ODE database in ./dumps
make pgRestore      # Uses the last restorable snapshot to restore ODE db
make dropDb         # Drops last db (it always runs pgDump before droping)
make resetDb        # Drops and re-init ODE db
make connect        # Connects you to psql 

Quality & tests

make quality

Documentation

PHP code documentation

via phpdoc, to be read in a web browser

make phpdoc
open|xdg-open api/doc/index.html

REST API documentation

via NelmioApiDocBundle, be read in a web browser

php app/console server:run
open|xdg-open http://127.0.0.1:8000/api/doc

Note that the REST API documentation provides a sandbox mode in order to test all provided API methods.

v1 Analyzis & Memo

The ./doc conserve (french) documentation & analyse about "v1" ODE project and "v2" prototype, included more 2015 meeting notes.

Useful Links

Let's chat!

Gitter