# Quick Start Guide

Once you have downloaded the application, install the application on your server and sign in to your dashboard.

- Add your customers by going to the Clients view. You can access any view by clicking on the menus from the left sidebar.
- Add your projects from the Projects view. Once you have created any project you are ready to add tasks, mile stones, files, comments, notes and invoices to the project. If you would like to track the time of your project, simply you can use the start timer button located in each project details view.
- Do you have a team and you want to collaborate with them? You can invite or add manually your team members from the Team members view. Once you've added the team members then you can add the members in your projects, assign them to tasks, send messages, share ideas and files, store their personal, social and work information, etc.
- Do you want to track attendance or daily time reporting of your team members? This application makes easy to time reporting. The team members can report the daily time cards by using the Clock In and Clock Out button located in dashboard. They can also submit the leave applications for their absences.
- You can create invoices and send the invoices to your clients from the Invoices view. Make sure you have configured your email settings before sending any email.
- Do you interested to provide a smart support to your customers? There is a client portal in this application. Your clients can login to the client portal and submit their support tickets. You can easily manage the tickets from the Support tickets view.
- To make this application more suitable to you please have a look at the Settings page and change the settings according to your needs.

To learn more about the application please check all parts of this documentation. In this documentation, we'll describe different parts according to the screenshots.

# Installation

##### Server Requirements

- PHP v7.2+
- MariaDB/ MySQL
- MySQLi PHP Extension
- Latest cURL PHP Extension
- Latest mbstring PHP Extension
- Latest OpenSSL PHP Extension
- date.timezone setting in php.ini (Set any timezone in date.timezone. Ex: date.timezone = "America/New_York" )

##### Quick Installation Guide

- Unzip the RISE-Ultimate-Project-Manager.zip which you have downloaded from the Envato Market.
- Upload the files to your sever using any FTP client.
- The file structure should be look like this:
  - /application
  - /assets
  - /documentation
  - /files
  - /install
  - /system
  - /updates
  - /index.php
- Create a MySql Database via your web hosting providers Control Panel (e.g. cPanel). Once you have created the database, remember the following information:
  - Database Name
  - Database Username
  - Database Password
- Open your web browser and enter the url (http://yourdomain.com or http://yourdomain.com/foldername) in the address bar.
- If everything is ok, you should get the installation page.
- Follow the instructions and click on the Next button. Then enter the database details which you have collected earlier. Finally, enter your name, email and password which will be required to login in the application. Then click on the Finish button and wait a while. The system will create necessary tables in database, files and configuration.
- That's all! After completing the installation delete the installation folder and login to your dashboard.

# Features

- Easily accessible UI
- Dashboard customization
- Project management
- Client management
- Team management
- Team conversation
- Private messaging with team members and clients
- Tasks, milestones, gantt, notes, files and customer feedback
- Project timesheet and time tracker
- Drag and drop facility for files
- Custom Fields
- Quick add from topbar
- Custom language selection for all user
- Web and email notifications
- Push notification
- Client portal
- All reports of any client in a single page
- Informative profile page for client contacts
- Estimate requests
- Estimates
- Support tickets
- Email piping for tickets
- Invoice management
- Invoice pdf, online payment (PayPal and Stripe)
- Expense & payments report
- Custom role (permissions) for team members
- Event calendar
- Private notes
- Customizable email templates
- Timecard/attendance management
- IP restriction for timecard entry
- Leave management
- Team member's details view
- Announcement/notice management
- Report printing and export
- Dynamic graph and visual report
- Activity logs for projects
- Install updates in a click
- Enable/Disable modules
- Help & Support
- Google Drive Integration
- Fully responsive on devices
- Codeigniter 3.1.10
- And more...

# Dashboard

You can create or customize your dashboard as like as you want.

Create a new custom dashboard using the Add new dashboard button from the dropdown in your default dashboard.

##### Customize dashboard

1. There has several widgets for your dashboard. You can drag the widgets to dashboard editing rows from here.
2. You can add as many rows as you want with desired columns by clicking this button.
3. If you want to see the preview of the widget, you can simply click on this button.
4. To remove the entire row, use this button. The widgets on the deleted row will be back to the widgets container. So, you can use those widgets again if you want.
5. If you want to save the dashboard without leaving the editing panel, you can use this button.
6. This button will save the dashboard and move you to your newly created/edited dashboard.

##### Dashboards list

1. Quick navigation for your dashboards containing selected colors.
2. This is your dashboards list. Please note that, the dashboards here are sortable. You can easily move up/down them except Default dashboard.

##### Extras

If you'll lost control or access to your selected widget(s), then those will show like the images below.

- In view mode.
- In edit mode.

##### Top navigation bar

1. You can toggle your side navigation bar with this icon.
2. This will move you to your To do list.
3. You can see your Starred projects dropdown here.
4. You can see your Starred clients dropdown here.
5. Here is your Dashboards dropdown.
6. This is the Quick add button. You can easily add anything with this like tasks, multiple tasks, events, tickets and more.
7. If you want to set a language only for your own, then this will take care. You can also set this from your Preferences.
8. This is your Notifications list.
9. This is your New messages list.
10. This is your Profile info dropdown. You can go to your profile, sign out, change password or select custom theme from there.

# Clients

You can create and manage your customers in clients section.

##### List of Clients

1. Create new client using the Add client button.
2. Search the existing clients which already added in this application.
3. To see the details information of the client click on the Company name link.
4. If you need to edit the client's information you can do it using the edit button.
5. To delete the client use the delete button. Once you click on the button, the system will delete the client and you will have a chance to undo the action within 10 seconds. If you don't undo the action, the system will delete the client permanently and you will not be able to revert the client anyway!
6. If you want to save the clients list in Excel file, you can simply click on this button and the visible clients in the table will be exported.
7. If you need to print the clients list, click on the print button.
8. You can define the rows per page of the table from here.
9. You can filter the clients with your desired client groups.

##### Add new client

1. The company name is an organization you or your organization works for. Even if your client is a person you have to add the information as a company. After creating any client you can add contacts of that client.
2. You can define different currency for different clients. It's useful when you are working with a foreign client which currency symbol is different from your default currency symbol. By default the invoices of the client will be generated using the default currency symbol if you don't define any currency symbol with that specific client.

##### Client Details

1. The contacts tab contains the list of contacts of the client. You can add one or more contact by clicking on the Add contact button.
2. To send an invitation to any user for the client, use the Send invitation button.
3. Client info tab contains all the informations of the client. You can check/edit the informations from here.
4. Projects tab contains all projects of the client.
5. Invoices tab contains all invoices of the client.
6. Payments tab contains all payments of the client.
7. Estimates tab contains all estimates of the client.
8. Estimate Requests tab contains all estimate requests of the client. Which are requested from client or added by team members.
9. Tickets tab contains all tickets of the client.
10. Notes tab contains your personal notes with the client. Please note that, this won't be visible to client.
11. Files tab contains your personal files with the client. This also won't be visible to client.
12. Events tab contains all of your events with the client.
13. To delete any contact from the client, use the delete button. Once you delete any contact you can undo the action within 10 seconds. If you don't undo the action the contact will be deleted from the client permanently and the contact will not be able to login in the client portal.

# Projects

You can create and manage your projects here.

##### List of Projects

1. Create new project using the Add project button.
2. To see the details information of the project click on the project title link.
3. By default the deadline color is black. If the deadline expires by today then the deadline color will be changed to orange and all expired deadline will be red color for non-completed projects.
4. The progress bar indicates the total progression of the project. To generate this progress bar, we calculate the total completed and non-completed tasks. The tasks points are important to calculate the progression.
   Example: If there are 10 tasks with 1 point in each tasks, the project's total point will be 10. Whenever 5 of the tasks gets completed (Task status = Done), the total progress of the project will be (5*100)/10 = 50%.
   Same logic applied on the milestone progress bar.
5. To filter the projects quickly, you can click on the status dropdown. From there, it's possible to see multiple or single status's projects.
6. You can filter the projects by deadline from here.
7. You can filter the projects list by the given labels of projects from here.

##### Project Details

1. To track the project time you can use the Start time button. Once you click on the Start time button the timer will be turned on. When you want to stop tracking the time you have to click on the Stop timer button.
2. You can edit, clone or change the status of project from the options dropdown.
3. The project progression chart represents the total progression of the project.
4. You can see the total tasks status of the project from the chart.
5. Activity timeline represents the project history.
6. To add new member in this project, click on the Add member button and select the user.

##### Tasks

1. Create new task using the Add task button.
2. You can use this check-box to make a task as done by instantly.
3. Suppose you want to change milestones, assigned to, status or other informations for multiple tasks. Then you can simply use this Batch update button. After clicking on this, a selection panel will be appear just beside the tasks. After choosing your desired tasks, click on the Batch update button. Then a modal window will be open. From there, you could select and change which fields you want to change.
4. If you want to add multiple tasks without leaving the modal, use Add multiple tasks button.
5. To change the task status easily, you can use this.
6. To see the details information of the task, click on the task title link.

##### Milestones

1. Create new milestone using the Add milestone button.
2. When all tasks of the milestone will be completed, the milestone's color will be Green.
3. If the milestone's deadline is expires by today and there has non-completed tasks with this, then the color will be Red.
4. The progress bar indicates the total progression of the milestone. To generate this progress bar, we calculate the total completed and non-completed tasks with the associated milestones. The tasks points are important to calculate the progression.
   Here applied the same logic which to generate project's progress bar.

##### Customer feedback

You can easily receive customer feedback from your client or you can add a customer feedback to your client.

# Estimates

You can create and manage estimates from the Estimate List under Estimates menu. Only admin and allowed team members can access the Estimates page. And the clients can see only their own estimates. Admin can define the role of a member to access the estimates.

On the estimate's details page, you can add as many items as you need like invoices.

When you sent an estimate to your client, the client or you can accept/reject it. After accepting the estimate, you can easily create invoice or project from the Actions dropdown.

# Estimate requests

In this application, you or your clients can easily create or manage Estimate requests. This is located under Estimates menu.

To create an estimate request, first you've to create a Form from Estiamte Forms under Estimates menu. You can create as many forms as you want. Which forms you'll mark as public, will be available to any user even whose are logged out from the app.

Then you can request an estimate by selecting your desired form and filling out. Client's also could do the same.

After getting/submitting estimate request, you can easily add Estimates from there or change the status of the estimate request.

# Invoices & Payments

You can create and manage your invoices from the Invoices menu.

##### List of Invoices

1. Create new invoice using the Add invoice button.
2. To see the details information of the invoice click on the invoice id link.
3. The invoice status represents the different states of the invoice. By default any invoice will be create with Draft status. Once you sent the invoice to the client then the invoice status will be changed to Sent. Once you receive any payment the invoice status will be changed to Fully paid or Partially Paid. When you cancelled the invoice then the invoice status will be Cancelled.
4. There could be many invoices with different clients. And the currency of the clients could also be different. With this filter, you can easily see your selected currency's invoices.
   Please note that, this filter won't be visible if there is only a single currency used for all clients.

##### Invoice Details

1. To add any item/product in the invoice, click on Add item button.
2. If you want to edit the inserted item, you can click on the edit button of invoice item row.
3. By clicking on delete button in invoice item row, you can delete the item from the invoice.
4. To send a pdf copy of the invoice to the client, click on the Email invoice to client menu.
5. You can download a pdf version of the invoice using the Download PDF menu.
6. If you want to see the invoice pdf instead of download, you can simply use the Invoice Preview menu.
7. You can print the invoice instantly using the Print invoice menu.
8. To edit any information in the invoice click on the Edit invoice menu under the Actions dropdown.
9. To make the invoice as cancelled, you can use Mark as cancelled menu. After clicking on the menu, a confirmation modal dialog will be appear. If you confirm from there, this action can't be undone and the invoice will mark as cancelled.
10. By clicking on the Add payment button you will get a modal to add payment in the invoice.
11. You can add Discount in the invoice from here. You can add this after/before tax with a fixed amount/percentage.

# Expenses

In this application the expenses are located in under the Finance menu. Click on the Expenses menu to access the expenses page. Only admin and allowed team members can access the Expenses page. Admin can define the role of a member to access the expenses.

The expenses view represents a list of expenses. Admin can add new expense categories from the Settings section.

# Support Tickets

In this application you can create any support ticket on behalf of your client or client can create any support ticket for himself.

##### List of Tickets

1. Create new ticket using the Add ticket button.
2. To see the details information of the ticket click on the ticket title link.
3. You can filter the tickets list with the created date from here.
4. You can filter the tickets list by the given labels of tickets from here.
5. If you want to see a specific team member's tickets, then you can simply use this filter.
6. If there is no member assigned with the ticket, you can assign to yourself in this ticket instantly by clicking this option from dropdown menu. Please note that, this will only be visible if there is no member assigned with the ticket and you can assign to the permitted members by editing the ticket anytime.

# Team Members

Using this application you can manage your team members easily.

There are two views for team members.

1. Whenever you want to add a new team member in this application, you can send invitation to the users email. The user will get an email with the signup instructions.
2. Instead of sending invitation to the team members, you can add any team member manually, using the Add member button.
3. To view the details of any team member, click on the view details link.

##### Team member's Details

In team member’s details view, you can see the details information about any member at a glance.

1. The Timeline tab represents all the posts of the member.
2. You can view or update the basic information of the member from the General Info tab.
3. Manage social links from the Social Links tab.
4. You can manage the login or access role from the the Accounts settings tab.
5. The Job info tab represents the job title, salary and the other job related information.
6. To see the details list of the member's attendance, check the Time cards tab.
7. From the Leave tab, you can see the details leave history for the team member.

# Messaging

All team members can send message to any team member. There are no restrictions to send messages for member to member.

Admin can control the messaging rule between team members and clients. From the Client settings, admin can set who can communicate with the clients. Only the selected members will be allowed to send/receive message to/from the clients.

Whenever you receive any new message, a notification icon will be appeared in the top right section in the application.

# Events & Notes

##### Events

The events page represents a calendar with all events. You can add new event in the calendar. Click on the calendar date to add any event on that specific date. You can define different colors for different events to make the view easier to see.

By clicking on any event, you can see the details information about that event.

##### Notes

There are two kinds of note in this application. In dashboard, you can save any quick note in Sticky Note. In this application all notes are private (Only you can see your notes).

There are other notes in the Notes page. You can add any private note here. If you add any note in any projects that notes also will be appeared in the notes list.

# Timeline

Timeline is a collaboration/conversation area of the team members. All team members can see this view. It's a best place to share any idea or files among the team members.

To share any file you can click on Upload File button or drag and drop files on the box. By default all file types are not supported to upload in the application. Admin can set the settings of accepted file formats in General Settings section.

# Time Cards

The time cards section represents the attendance or total time log of each team members. Any team member can start clock from the dashboard by clicking on Clock In button. Once he/she clicks on the Clock In button the timer count starts. After clicking on the Clock Out button the timer stop counting the time for the team members.

Admin or allowed members can add time manually for any team member.

If admin wants to set any IP restriction for this module then he/she can set the allowed IP addresses in the IP Restriction Settings Section Under the Settings menu. Admin users are not applicable for this restriction. The admins are allowed to access the time card Clock In/Out from any IP address. The system will check the IP address of the non-admin team members.

# Leave

This application allows the leave management facility for the team members. The team member can apply for leave and the admins or superiors can approve/reject the leave application. Admins and superiors can also assign leave for subordinates. Admin can create various leave types from the Leave types Setting.

1. Apply a new leave using the Apply leave button.
2. Admins or allowed members can assign leave for team members using the Assign leave button.
3. To see the details information of the leave, click on this icon. From there, allowed members can approve/reject the leave. Please note that, once it'll be approved/rejected this operation can't be undone or change.
4. All applications tab contains all of the leave applications.
5. Summary tab contains the yearly summery chart of approved leave applications.

# Announcements

This application provides the announcement publishing feature. The admins and selected team members can create new announcement for team members and/or clients.

The published announcement will be appeared in dashboard of each user. Once the user clicks on the announcement then it will not be appear in dashboard again. But the users can see the announcement from the Announcements menu anytime.

# Settings

The application has various types of settings to make suitable according to your work. Here are some basic introductions about the settings.

##### General Settings

- General: In this section, you can change the application logo, title, localization settings, file type restriction and the item purchase code.
- Email: This setting is for out-going emails. All emails will be sent using the settings. You can use either the default mail sending method of your server or SMTP.
- Email templates: The application has some default email templates which are using to send different emails. You can change the appearance of the email templates as you like.
- Modules: You can enable/disable your desired modules from here.
- Cron Job: You can enable cron job at your server by coping the link or using command from here. Please note that, cron job is must necessary if you enable anything which contains a toltip "Cron Job is required for this action!".
- Notifications: This setting has a broad description. Please check this.
- Integration: You can integrate some cool APIs from here. Please check integration tab from menu for explained description.
- Updates: Please check this for upgrading guide.

##### Access Permission

- Roles: It's a setting to set different access permission for different users. To add any role click on the Add role button. Once you create any role then you can set permission to the role by clicking on the role. You'll see different types of access permission and you can choose in your own way. After defining the roles you can set the role to any team member. Each team member can have one role at a time. By default all team members has the Team Member role. To change the role of any team member, go to the team member’s details view and click on the Account settings tab and choose your desired role for the member.
- Team: You can create teams with your team members. So, you can assign role on several team(s), share events and much more.
- IP Restriction: If you would like to prevent accessing the Clock In/Clock Out of Time card from unauthorized IP, you can add authorized IP address here.

##### Client

- Client permissions: In this area you can control the client login/signup and the message sending rule between client and team members.
- Client groups: Here you can create client groups. So, you can easily choose your desired client groups with your clients.

##### Setup

- Custom fields: You can create custom fields for various items as your wishes. There has 8 types of field type. You can also give permissions to them that, if they will show on tables or not and visibility to users. Then they will appear on add/edit item screens and tables according to the permissions.
- Tasks: You can create task status from here. Then you can select the task status from the add/edit task screen.
- Events: You can enable Google Calendar API for per users from here.
- Leave types: You can create various leave types from here.
- Tickets: You can create various ticket types and modify ticket settings from here. For IMAP integration, please check this.
- Expense Categories: There could be various expense types in your business; you can add the types here.
- Invoice: There has some invoice settings to make things ease. You can change your invoice logo, invoice style, invoice reminders and more.
- Payment Methods: To receive any payment through invoice the payment methods are required. Add your required payment methods in this section.
- Company: You can setup your company informations from here. Then it'll be available on Invoices and Estimates.
- Taxes: In this application the taxes are using in Invoices and Estimates. You can define different taxes name and percentage here.

# Notifications

You can customize the app notifications. Please have a look at Settings>Notification setting. There are options for email and web notification for all events. You can enable both or as you prefer.

Notifications are not working?

Please make sure you are using latest version of OpenSSL. You can check the OpenSSL version and released date in your server from phpinfo. If you don't know how to check the phpinfo just add a php file (phpinfo.php) in your server inside the RISE directory: <?php phpinfo(); ?> Then browse the file from your browser. Like as http://yourdomain.com/phpinfo.php. If you can't update the OpenSSL, please contact to your hosting service provider.

Please also keep in mind that you'll not get notifications for your own actions.

# Google Drive Integration

You can integrate Google Drive API as an extra cloud storage, from Settings>Integration>Google Drive. There has some easy steps.

1. Go to the Google API Console and Create a project.
2. Select your project (1) and click on Enable APIs and Services (2).
3. Search for Google Drive API and select that.
4. Enable the API.
5. Now you've to create the credentials. To create this, go to the API's description page.
6. On the question of Where will you be calling the API from? select your preferred destination. (Normally 'Web browser') And select User data for the last question. Then click on the What credentials do I need? button.
7. Then you'll get a popup dialog box. Set up OAuth consent screen. Click on Set up.
8. The OAuth consent screen form will be appear then. Fill that up with your desired information.
9. Add your domain name in Authorized domains section.
10. Click on the Credentials tab now, from the left side of 'OAuth consent screen'. Click on Create credentials button and select OAuth client ID.
11. Select Web application for Application type. In 'Authorized redirect URIs', you should add this url https://yourdomain.com/index.php/google_api/save_access_token. You'll find this in your integration setting.
12. After saving, you'll get the Client ID and Client Secret. Add them to RISE and click on Save & authorize.
13. On retrieving from API access, please make sure that, status of Google Drive is showing Authorized.

That's all! On future, all files will be uploaded into Google Drive.

# Google Calendar Integration

You can integrate Google Calendar API to sync events between your Google Calendar and Events on this app. There has some easy steps to setup.

1. First, enable Google Calendar API from Settings>Events. After enabling this, every users can integrate with their own Google Calendar who have access to the Events module on the app.
2. To integrate, go to the Google API Console and Create a project.
3. Select your project (1) and click on Enable APIs and Services (2).
4. Search for Google Calendar API and select that.
5. Enable the API.
6. Now you've to create the credentials. To create this, go to the API's description page.
7. On the question of Where will you be calling the API from? select your preferred destination. (Normally 'Web browser') And select User data for the last question. Then click on the What credentials do I need? button.
8. Then you'll get a popup dialog box. Set up OAuth consent screen. Click on Set up.
9. The OAuth consent screen form will be appear then. Fill that up with your desired information.
10. Add your domain name in Authorized domains section.
11. Click on the Credentials tab now, from the left side of 'OAuth consent screen'. Click on Create credentials button and select OAuth client ID.
12. Select Web application for Application type. In 'Authorized redirect URIs', you should add this url https://yourdomain.com/index.php/google_api/save_access_token_of_calendar. You'll find this in your integration setting modal on Events page.
13. After saving, you'll get the Client ID and Client Secret. Add them to RISE at Events>Google calendar settings modal and click on Save & authorize.
14. You'll get your own calendar events always. And you can add any Special calendar (like Holidays Calendar). To get Special calendar's ID, click on the ⋮ icon just beside the Calendar name and select the Settings from the dropdown. Then you'll find the Calendar ID in the settings page.
15. On retrieving from API access, please make sure that, status of Google Calendar is showing Authorized.

That's all! You've successfully integrate with your Google Calendar.

Note: After integration, any addition/modification/deletion will effect your Google Calendar instantly. If any of these will happen in your Google Calendar, Cron job will grab those changes and add to RISE. If you will add any Special calendar, you can edit/delete those events from RISE but it won't effect your Google Calendar.

# IMAP Integration

You can setup an email address to create the tickets automatically when you receive any emails at that address. To active this, please fill up the necessary informations at Settings>Tickets>IMAP settings.

Please make sure that, your IMAP access is enabled on your email and after authorization, status of IMAP is showing 'Authorized'.

Note: The system will create tickets based on the unread emails. After creating the ticket, the emails will be marked as read. To get the replies in the same tickets, the system will check the ticket ID in the email subject. If there is no ticket ID in the subject, that will be considered as a new ticket. You can setup the email subject from Settings>Email templates.

# Push Notification

We're using Pusher for push notification. To enable this, please follow this instructions step by step:

1. Login to your Pusher account.
2. Create a new App from there.
3. On modal window, chose your preferred information. And select jQuery for 'front-end tech' and PHP for 'back-end tech'.
4. After creating the app, you'll get the app details page.
5. Click on App Keys from there.
6. Get the credentials and add to RISE.

Note: You'll get browser notification only when you'll use https server connection, otherwise you'll get app alert notification. Push notification is depends on Web notification. So, to get push notification, please remember to enable web notification from the Notifications settings.

# Help & Support

You can add Help and Knowledge base articles for your team members and clients. Team members could see all help and knowledge based articles but the clients will only see the knowledge based articles.

You can create or manage Categories and Articles for both Help and Knowledge base under Help & Support menu.

Once you'll add Categories and Articles, they'll be appear by category-wise on Help and Knowledge base.

# Upgrading Guide

Please note that you can only download the updates if you have a valid purchase code. Enter the valid purchase code in general settings of this application and save the settings.

Please backup all files and database before start the installation of updates.

There is a very easy way to update your application.

To install any updates go to Settings>Updates of the application. The download will be start automatically once any new update is available. Once the download is completed you can install the updates by clicking on the link. That’s all!

# Application Structure

1. The config folder contains all configuration related files.
2. The controllers folder contains all business logic of the application.
3. If you would like to add any new language then create a new folder and add the custom_lang.php and default_lang.php. Please keep it in mind that you shouldn't change anything in the default_lang.php. If you would like to add/update any language, then update the custom_lang.php. When you install any new updates then the defult_lang.php could be change. So update your custom_lang.php manually (if required) after installing new updates. To change the language of the application, go to the Settings>General settings section and choose your language then save the settings.
4. Views folder contains all the view related files.
5. Assets folder contains all css, js and images of the application.
6. Don't change anything in system folder. It's contains the core functions of the application.

To learn more about the application you can learn the codeigniter framework.

# CSRF Protection

We added CSRF protction from v2.4. Users who have installed the RISE before this version, they have to enable the CSRF protection manually from the config.

To enable it, please open /application/config/config.php and see the line #484. There should be a config like this: $config['csrf_protection'] = FALSE; Change the code block to following:

    $config['csrf_protection'] = TRUE;
    $config['csrf_token_name'] = 'rise_csrf_token';
    $config['csrf_cookie_name'] = 'rise_csrf_cookie';
    $config['csrf_expire'] = 7200;
    $config['csrf_regenerate'] = FALSE;
    $config['csrf_exclude_uris'] = array();

    include_once(APPPATH . 'config/app.php');
    if (array_key_exists("app_csrf_exclude_uris", $config)) {
        $config['csrf_exclude_uris'] = array_merge($config['app_csrf_exclude_uris'], $config['csrf_exclude_uris']);
    }

Feel free to change the csrf_token_name and csrf_cookie_name as you wish.

# Language

How to add new language?

1. Please go to \application\language directory
2. Copy the english language folder and paste (set the directory name for your language)
3. Add your translations in default_lang.php
4. Finally set this language in application from Settings>General Settings>Language.

How to improve existing language?

1. Please go to \application\language\[your language] directory
2. Copy the default_lang.php and paste all to custom_lang.php
3. Change the custom_lang.php.

How to share my language?

1. Please update your language in Github
2. Or email to support@fairsketch.com

# Development

How to add new pages?

1. If you want to add any restricted page (login required?), please extend the controller from MY_Controller
2. If you want to add any public page (login not required), extend the controller from CI_Controller

How to add new menu item in left sidebar?

1. You can add menu item from this file \application\views\includes\left_menu.php

How to save?

1. All models are extended from Crud_model (\application\models\Crud_model.php)
2. Please check the add/edit/remove and basic i/o functions there.

How to create the table list view?

1. Please see example in any page where table shown.
2. The table list is using datatable plugin but we've developed a library to manage it easily. Please have a look at \assets\js\app.js
3. In application, we are using the assets\js\app.min.js

How to enable error log?

1. Open \index.php line #58 and change the line to: define('ENVIRONMENT', 'development');
2. Open \application\config\config.php line #254 and change the line to: $config['log_threshold'] = 1;
3. Do the actions which you want to debug. Then find the log in \application\logs\ directory.;
4. Note: Once you've completed the debugging, please remember to revert the settings back. Otherwise it'll create unnecessary log in your server and waste space. To revert:
5. Open \index.php line #58 and change the line to: define('ENVIRONMENT', 'production');
6. Open \application\config\config.php line #254 and change the line to: $config['log_threshold'] = 0;

# Thanks

Thanks again to purchase this application. We are trying to add and improve new features regularly. Hopefully you'll enjoy using the app. If you have any query or suggestion, please send an email to support@fairsketch.com

Best wishes
Fairsketch Team

http://codecanyon.net/user/fairsketch