https://github.com/scify/volunteasy
https://github.com/scify/volunteasy
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/scify/volunteasy
- Owner: scify
- License: apache-2.0
- Created: 2015-05-06T07:41:34.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-11-24T12:08:47.000Z (over 8 years ago)
- Last Synced: 2025-05-18T17:14:23.455Z (about 1 year ago)
- Language: HTML
- Size: 124 MB
- Stars: 2
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.TXT
Awesome Lists containing this project
README
# Volunteasy
### Starting the project
For installing Laravel, please refer to [Official Laravel installation
guide](http://laravel.com/docs/5.1).
Check the server eequirements of the version in the project, install and enable the required php modules.
### Installing dependencies (assuming apache as web server and mysql as db):
In a nutshell (assuming debian-based OS), first install the dependencies needed:
Note: php5 package installs apache2 as a dependency so we have no need to add
it manually.
`% sudo aptitude install php5 php5-cli mcrypt php5-mcrypt mysql-server php5-mysql`
Install composer according to official instructions (link above) and move binary to ~/bin:
`% curl -sS https://getcomposer.org/installer | php5 && mv composer.phar ~/bin`
Download Laravel installer via composer:
`% composer global require "laravel/installer=~1.1"`
And add ~/.composer/vendor/bin to your $PATH. Example:
```
% cat ~/.profile
[..snip..]
LARAVEL=/home/username/.composer/vendor
PATH=$PATH:$LARAVEL/bin
```
And source your .profile with `% source ~/.profile`
After cloning the project with a simple `git clone https://github.com/scify/VoluntEasy.git`, type `cd VoluntEasy/VoluntEasy && composer install` to install all dependencies.
### Editing the .env file
Copy the existing `VoluntEasy/.env.example` file to `VoluntEasy/.env`.
First, you have to generate an application key. Use `php artisan key:generate`.
An example .env file should look like this (populate it using your own credentials):
```
APP_DEBUG=false
APP_KEY=generatedkeygoeshere
DB_HOST=localhost
DB_DATABASE=volunteasy
DB_USERNAME=volunteasy
DB_PASSWORD=secretpass
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username
MAIL_PASSWORD=mailpassword
MAIL_FROM_ADDR=hello@example.com
MAIL_FROM_NAME=Name
LOCALE=el
MODE=municipality
ROOT_URL=http://volunteasy.example.com
```
### Apache configuration:
```
% cat /etc/apache2/sites-available/mysite.conf
ServerName myapp.localhost.com
DocumentRoot "/path/to/VoluntEasy/VoluntEasy/public"
AllowOverride all
```
Make the symbolic link:
`% cd /etc/apache2/sites-enabled && sudo ln -s ../sites-available/mysite.conf`
Enable mod_rewrite and restart apache:
`% sudo a2enmod rewrite && sudo service apache2 restart`
Fix permissions for storage directory:
`% chmod -R 755 path/to/VoluntEasy/VoluntEasy/storage && chown -R www-data:www-data /path/to/VoluntEasy/VoluntEasy/storage`
Test your setup with:
`% php artisan serve`
and navigate to localhost:8000.
### Nginx configuration:
Add additional the additional dependencies needed:
`% sudo aptitude install nginx php5-fpm`
Disable cgi.fix_pathinfo at /etc/php5/fpm/php.ini: `cgi.fix_pathinfo=0`
`% sudo php5enmod mcrypt && sudo service php5-fpm restart`
Nginx server block:
```
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
server_name server_domain_or_IP;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
```
`% sudo service nginx restart && sudo chmod -R 755 path/to/project/storage`
And finally, set the group appropriately:
`% sudo chown -R www-data:www-data storage`
### Database
#### Creating a new database
Initialize the database with `php artisan migrate` and test the installation with `php artisan serve` and hit `localhost:8000/auth/register` at your browser of choice.
After running migrations, it's time to create an initial user.
Navigate at the root directory and run `./config-user.pl`. The script asks for initial user info. After filling everything, you will be asked if the info is correct. If not, just press `n` and it will run once more. Upon successful completion, the database seed file will be generated. It's time to seed the database with `php artisan db:seed --class=UserTableSeeder`.
Try login credentials by navigating at http://localhost/auth/login
#### Importing the demo database
If you want, you may try to import the .sql file into your database instead of
creating a new one. Just enter `mysql -u user -p database_name < project_voldemo.sql`.
Credentials for the root user are:
```
user: demo@scify.org
pass: demo1234
```
### Command scheduling
As of now, a background job performs a search for actions that are going to expire in seven days and sends a questionnaire link to all the subscribed volunteers. While the job exists, because it resides on `artisan`, you will need to add a cronjob entry for this.
Something like
```
% crontab -l
0 1 * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
```
will suffice.