Demo Installation
1. Clone files
git clone https://github.com/OpenReport/Client.git
git clone https://github.com/OpenReport/Access.git
2. Copy Files
Client/* -> /var/www/client
Access/* -> /var/www/mobile
3 - Setup Database (database.sql)
Create Database
delimiter $$
CREATE DATABASE `openreport` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci */$$
Add Tables
delimiter $$
CREATE TABLE `accounts` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(32) DEFAULT NULL,
`name` varchar(96) DEFAULT NULL,
`admin_email` varchar(45) DEFAULT NULL,
`map_api_key` varchar(64) DEFAULT NULL,
`date_created` date DEFAULT NULL,
`account_limits` varchar(1024) DEFAULT '{"users":0, "records":0, "forms":0, "media":0}',
`is_active` tinyint(4) DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `KEY` (`api_key`) USING BTREE,
UNIQUE KEY `EMAIL_UNIQUE` (`admin_email`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1$$
delimiter $$
CREATE TABLE `assignments` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(32) COLLATE latin1_general_ci DEFAULT NULL,
`form_id` bigint(20) DEFAULT NULL,
`user` varchar(128) COLLATE latin1_general_ci DEFAULT NULL,
`identity` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`schedule` set('daily','weekly','monthly','yearly') COLLATE latin1_general_ci DEFAULT NULL,
`repeat_schedule` smallint(6) DEFAULT '1',
`date_assigned` datetime DEFAULT NULL,
`date_expires` datetime DEFAULT NULL,
`date_last_reported` datetime DEFAULT NULL,
`status` set('open','closed') COLLATE latin1_general_ci DEFAULT NULL,
`is_active` varchar(45) COLLATE latin1_general_ci DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci$$
delimiter $$
CREATE TABLE `distributions` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(32) COLLATE latin1_general_ci DEFAULT NULL,
`user_role` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`form_tag` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`is_active` tinyint(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci$$
delimiter $$
CREATE TABLE `forms` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`tags` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`title` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`description` varchar(1024) COLLATE latin1_general_ci NOT NULL,
`identity_name` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`meta` text COLLATE latin1_general_ci,
`report_version` int(11) DEFAULT NULL,
`date_created` datetime DEFAULT NULL,
`date_modified` datetime DEFAULT NULL,
`is_public` tinyint(4) DEFAULT '0',
`is_published` tinyint(4) DEFAULT '0',
`is_deleted` tinyint(4) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Open Report Form'$$
delimiter $$
CREATE TABLE `libaray` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(36) COLLATE latin1_general_ci DEFAULT NULL,
`meta` longtext COLLATE latin1_general_ci,
`role` set('field','fieldset') COLLATE latin1_general_ci DEFAULT NULL,
`is_active` tinyint(4) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Libaray of Standard Controls'$$
delimiter $$
CREATE TABLE `records` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`form_id` bigint(20) DEFAULT NULL,
`report_version` int(11) DEFAULT NULL,
`meta` text COLLATE latin1_general_ci,
`record_date` datetime DEFAULT NULL,
`record_time_offset` char(5) COLLATE latin1_general_ci DEFAULT NULL,
`user` varchar(512) COLLATE latin1_general_ci DEFAULT NULL,
`lat` decimal(10,8) DEFAULT NULL COMMENT 'Records for task/event data',
`lon` decimal(11,8) DEFAULT NULL,
`score` mediumint(9) DEFAULT NULL,
`identity` varchar(128) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci$$
delimiter $$
CREATE TABLE `reports` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(36) COLLATE latin1_general_ci DEFAULT NULL,
`form_id` bigint(20) DEFAULT NULL,
`form_name` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`version` int(11) DEFAULT NULL,
`title` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
`meta` text COLLATE latin1_general_ci,
`is_active` tinyint(4) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci$$
delimiter $$
CREATE TABLE `tags` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`api_key` varchar(32) COLLATE latin1_general_ci DEFAULT NULL,
`scope` set('roles','reports') COLLATE latin1_general_ci DEFAULT NULL,
`name` varchar(45) COLLATE latin1_general_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci$$
delimiter $$
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(64) DEFAULT NULL,
`email` varchar(128) DEFAULT NULL,
`password` varchar(16) DEFAULT NULL,
`account_id` bigint(20) DEFAULT NULL,
`roles` varchar(96) DEFAULT NULL,
`date_created` date DEFAULT NULL,
`date_modified` date DEFAULT NULL,
`date_last_accessed` datetime DEFAULT NULL,
`is_active` tinyint(4) DEFAULT '1',
PRIMARY KEY (`id`),
UNIQUE KEY `EMAIL` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8$$
4. Create Account (account.sql)
Create a Demo Account
INSERT INTO `openreport`.`accounts`
(`id`,
`admin_id`,
`name`,
`is_active`,
`api_key`)
VALUES
(
1,
1,
'OpenReport Demo'>,
1,
'7406f3491660b7b35b85f5381e511712'>
);
Create a Demo User
INSERT INTO `openreport`.`users`
(`id`,
`username`,
`email`,
`password`,
`account_id`,
`roles`,
`date_created`,
`date_modified`,
`is_active`)
VALUES
(
1,
'Demo User',
'demo@email.com',
'demo123',
1,
now(),
now()>,
1>
);
5. Add Sample Data (sample.sql)
6. Modify Code
/var/www/client/models/config.php - update connection string
7. Set Up Apache (openreport.local)
/etc/apache2/sites-available
add -> VirtualHost file
#
# openreport (/etc/apache2/sites-available/openreport.local)
#
# open report client interface
#ServerAdmin webmaster@example.com
ServerName openreport.local
# Indexes + Directory Root.
DirectoryIndex index.php index.html
DocumentRoot /var/www/client/
AllowOverride All
# Logfiles
ErrorLog /var/www/client/logs/error.log
CustomLog /var/www/client/logs/access.log combined
# open report mobile access
#ServerAdmin webmaster@example.com
ServerName m.openreport.local
# Indexes + Directory Root.
DirectoryIndex index.php index.html
DocumentRoot /var/www/mobile/
AllowOverride All
# Logfiles
ErrorLog /var/www/mobile/logs/error.log
CustomLog /var/www/mobile/logs/access.log combined
activate sites
sudo a2ensite openreport.local
reload apache
/etc/init.d/apache2 reload
test connections
http://openreport.local - Client Access
http://m.openreport.local - Mobile Access