Introduction

Rewardy is a social status application where users can post status and earn points for their activities. Users can exchange their points to get amazing rewards. !

Name : Rewardy
Author : RS Application
Current Version : 1.3
Latest Documentation : Click here to get the latest documentation

Installation

Follow the instructions below and your installation will be done with ease.

Server Requirement

Make Sure your server meet these requirements (Laravel 9). [ Recommend: Ubuntu VPS Server ]
  • PHP >= 8.1
  • BCMath PHP Extension
  • Ctype PHP Extension
  • cURL PHP Extension
  • DOM PHP Extension
  • Fileinfo PHP Extension
  • JSON PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PCRE PHP Extension
  • PDO PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • GD Library >=2.0 / Imagick PHP extension >= 6.5.7
  • FFMpeg and FFProbe binaries (For Video)

App Structure

  • client.zip = Main Frontend
  • api.zip = App Backend
  • admin.zip = Admin Panel

Domain Setup:

Default:

  • example.com = Frontend
  • api.example.com = API
  • admin.example.com = Admin Panel

Recommended:

  • example.com = Custom Landing Page
  • {app/my/panel/web}.example.com = Frontend
  • api.example.com = API
  • admin.example.com = Admin Panel

API

  • Login into your cpanel.
  • Create a new sub-domain api.example.com. The document root should point to the public folder of the project.
    [ex: "/home/example/api/public"]
  • Create a new database and remember the credentials.
    [ex: database= rewardy, user= test, password= 1234]
  • Upload the api.zip file in the root directory of your API (ex: "/home/example/api") and extract the file.
  • Go to your site url (ex: https://api.example.com) and follow the installation wizard.

Installation Wizard :

The Installation Wizard will help you to do all the complicated things automatically.

Let's Start :

Installation Settings
Installation Settings
  • You'll need to know these things to proceed.
  • If you have these, then click Start Installation.

Step-1 :

Extensions and File Permissions
Extensions and File Permissions
  • It'll check all the required extensions and file permissions.
  • If Everything is okay, then you'll be able to Go To the Next Step.

Step-2 :

Purchase Code
Purchase Code
  • Domain : This domain will be registered with your purchase code. Once activated you won't be able to use this purchase code from another domain. Contact us if you need to change your domain.
  • Purchase Code : Your purchase code of Rewardy. [Where to get purchase code?]
  • Contact Email : This email will be registered with your purchase code. We'll identify and contact you via this email if there's any issue.

Step-3 :

Only MySQL Database supported.

Database Setup
Database Setup
  • Database Host : Your database host (ex: 127.0.0.1) .
  • Database Port : Your database port (ex: 3306) .
  • Database Name : Your database name (ex: rewardy) .
  • Database Username : Your database user (ex: user) .
  • Database Password : Your database password (ex: 123456) .

Step-4 :

Database Import
Database Import
  • It'll create all database tables and import data.

Step-5 :

App Settings
App Settings
  • App Name : This name will be used in email template (ex: Rewardy) .
  • Frontend URL : Your frontend url (ex: https://example.com) .
  • Admin URL : Your admin url (ex: https://admin.example.com) .

Finish :

App Settings
App Settings
  • Backend API setup is completed. Use these credentials to access accounts.
  • Make sure your frontend and admin panel is ready before visiting them.
  • Frontend Website : It'll redirect you to your frontend.
  • Admin Website : It'll redirect you to your admin panel.
Something isn't working? Contact us rsapplication.contact@gmail.com

Frontend

  • Extract the client.zip file and got to dist folder.
  • Change the logo.png and favicon.png and meta.png files.
  • Open the index.html file in an editor and update the meta tags [ex: Title, Description, Keyword].
  • Open the config.js file in an editor and update the urls [ex: https://api.example.com].
  • Change Your PWA Settings.
  • Compress only the dist folder and upload the file in the root directory of your Frontend and extract the file.
  • Create your server configuration (ex: .htaccess) from these Example Configurations .
  • Go to your site url (ex: https://example.com) and check everything.

Admin Panel

  • Extract the admin.zip file and got to dist folder.
  • Change the logo.png and favicon.png and meta.png files.
  • Open the index.html file in an editor and update the meta tags [ex: Title, Description, Keyword].
  • Open the config.js file in an editor and update the urls [ex: https://api.example.com].
  • Change Your PWA Settings.
  • Compress only the dist folder and upload the file in the root directory of your Admin Panel and extract the file.
  • Create your server configuration (ex: .htaccess) from these Example Configurations .
  • Go to your site url (ex: https://admin.example.com) and check everything.

PWA Settings

SSL Certificate is required for PWA.

N.B: Browsers uses a huge cache for these icons. If you change these icons it won’t reflect on the customer installed app. So before customers browsing your site replace those icons, splash images.

  • Go to icons folder and change the images.
  • Open the manifest.json file in an editor and update the following infos:

    • "name": "Example Name"
    • "short_name": "ShortName"
    • "description": "Best Reward App Ever"

    If you want to change the theme color then update these infos:

    • "theme_color": "Your Color"
    • "background_color": "Your Color"

Cron Job

You need to create a cron job to run commands to reset daily status post limit and reset leaderboard points and send rewards to top users.

Command :

                        {php_path} /{api_root_directory}/artisan schedule:run 1>> /dev/null 2>&1
                    
Example:
  • php_path : "/usr/local/bin/php" or "/usr/bin/php"
  • api_root_directory : "/home/example/api" or "/home/example/Public_html/api"
  • Full Command : "/usr/local/bin/php /home/example/api/artisan schedule:run 1>> /dev/null 2>&1"
*Above commands are examples. Please use your own hosting PHP path and your api domain root path. While running this command the terminal should use PHP >= 8.1. If your default php version is different, then please use PHP 8.1 path (ex: "/usr/local/bin/ea-php81")
Still Confuse to install ? Get installation support rsapplication.contact@gmail.com

Admin Manual

Rewardy is pretty easy to use if you have any doubt you can follow below instructions.

Settings:

Settings are dynamic, you can change them at any time.

General Settings :

General Settings
General Settings
  • App Name : App name that shows on header and title.
  • Logo : Logo on title and preloader.
  • Reward Type : Referral reward type.
    • Once : User will get reward only once when the referred user make first withdrawal.
    • Lifetime : User will get reward everytime the referred user make a withdrawal.
  • Reward Amount : How many points you want to give for referring a user.
  • FFMpeg : Settings for FFMPeg for video size compressing. You need FFMPeg installed in your server to use this function.
    • Disable : If you don't have or don't want to use FFMpeg, you can turn it off. Video size won't be converted and user needs to provide thumbnail image as mandatory.
    • Screenshot Only : You can use it for only generating auto thumbnails from video.
    • Screenshot + Convert : It will compress the video size and generate auto thumbnails.
  • New User Reward : User will get this points when they first register.
  • Need Verification : If you turn it on, every user needs to verify their email. If off then verification won't be required.
  • Manual Payment : You can turn On or Off the manual payment system.
Leaderboard Settings
Leaderboard Settings
  • Leaderboard : You can turn On or Off the leaderboard system.
  • 1st Prize : Reward for the 1st place of the leaderboard.
  • 2nd Prize : Reward for the 2nd place of the leaderboard.
  • 3rd Prize : Reward for the 3rd place of the leaderboard.
Advertisement Settings
Advertisement Settings
  • Ads Type : What kind of ads user can create.
    • PPV + PPD : Both Pay Per View and Pay Per Day.
    • Pay Per View : Only Pay Per View, where pricing will be based on amount of view.
    • Pay Per Day : Only Pay Per Day, where pricing will be based on amount of day.
  • Feed Items : Advertisement will show after every X number of posts in the feed.
  • PPV Price : User need to pay that amount for every 1000 views he purchases.
  • PPD Price : User need to pay that amount for each day he wants to show ads.
  • PPV Min : Minimum amount of views user need to purchase.
  • PPV Max : Maximum amount of views that user can purchase.
  • PPD Min : Minimum amount of days user need to purchase.
  • PPD Max : Maximum amount of days that user can purchase.

Status Settings :

Earning Settings
Status Settings
  • Earnings : If you turn it Off, no user will get points for their activities.
  • Auto Approve : If On then all new post will automatically get approved.
  • Image Upload : You can turn On or Off image uploading system.
  • Video Upload : You can turn On or Off video uploading system.
  • Youtube Upload : You can turn On or Off YouTube uploading system.
  • Max Size : Maximum video size that users can upload.

Mail Settings :

Mail Settings
Mail Settings
  • Mail Host : Your mail server host.
  • Mail Port : Your mail server port.
  • Mail Username : Your mail username.
  • Mail Password : Your mail password.
  • Mail Encryption : Your mail encryption.
  • Mail From Address : All your mails will be sent from this address.

Payment Settings :

Payment Settings
Payment Settings
  • Stripe Key : Your stripe key.
  • Stripe Secret : Your stripe secret.
  • Stripe Currency : Your stripe currency.
  • Mollie Currency : Your mollie key.
  • Mollie Currency : Your mollie currency.

If the mail and payment setting don't get updated properly from settings then please manually set them. Go to your API root directory on your server and edit .env file and update or add below fields.

  • MAIL_HOST={Your Value}
  • MAIL_PORT={Your Value}
  • MAIL_USERNAME={Your Value}
  • MAIL_PASSWORD={Your Value}
  • MAIL_ENCRYPTION={Your Value}
  • MAIL_FROM_ADDRESS={Your Value}
  • STRIPE_KEY={Your Value}
  • STRIPE_SECRET={Your Value}
  • STRIPE_CURRENCY={Your Value}
  • MOLLIE_KEY={Your Value}
  • MOLLIE_CURRENCY={Your Value}

Packages :

Manage paid membership packages and point system.

Package Settings
Manage Package
  • Title : Package Title.
  • Price : Package Price [Primary Currency] for 30 days.
  • Status Limit : Daily status post limit for this package users.
  • View Limit : Daily status view limit for this package users.
  • Like Limit : Daily status like limit for this package users.
  • Comment Limit : Daily status comments limit for this package users.
  • User Count : how many users using this package.
  • Action Buttons : There are two options.
    • Edit : Update package details and points.
    • Delete : Delete the package. If you delete any package all the users of that package will be downgraded to free package.
Package Settings
Create Package
  • Title : Package Title.
  • Description : A short description about the package.
  • Price : Package Price in Primary Currency for 30 days.
  • Status Limit : Daily status post limit for this package users.
  • View Limit : Daily status view limit for this package users. [0 for unlimited]
  • Like Limit : Daily status like limit for this package users. [0 for unlimited]
  • Comment Limit : Daily status comments limit for this package users. [0 for unlimited]
  • Spin Limit : Daily "Spin The Wheel" game limit for this package users. [0 for unlimited]
  • Toss Limit : Daily "Flip A Coin" game limit for this package users. [0 for unlimited]
  • Add : Points for uploading an image. User will get reward only if there image gets approved.
  • Like : Points for liking an image. User will get reward only once from each image.
  • Comment : Points for commenting an image. User will get reward only once from each image on his first comment.
  • View : Points for viewing an image. User will get reward only once from each image.
  • Author Like : Author Points for getting like on his image. Author of the status will get reward when someone likes their image.
  • Author Comment : Author Points for getting comment on his image. Author of the status will get reward when someone comments on their image.
  • Author View : Author Points for getting view on his image. Author of the status will get reward when someone views their image.
*It has same patterned for Video and YouTube.

User :

You'll get all information about the user from the user details page.

User Settings
User Settings
  • Details : View or Edit user personal information.
  • Messages : View or Send user inbox message.
  • Following : List of users who's followed by this user.
  • Followers : List of users whose follow this user.
  • Status : List of approved status from this user.
  • Deposits : List of deposits from this user.
  • Withdrawal : List of withdrawal from this user.
  • Transactions : User all transactions history.
  • Transactions : List of users who was referred by this user.
User Settings
User Settings
  • Daily Limit Use : User today post count. Maximum - X = limit left. If any user reach the maximum daily limit number, he won't be able to post anymore on that day.
  • Package : You can manually change user package.
  • Package End : You can manually change user package expiry/renew date.
  • Verification Badge : User will be verified and show a blue tick beside their name. Posts from verified users will automatically get approved.
  • Auth Verified : You can mark user as email verified or not. If not and Need verification option is on, then user need to verify their account before login the app.
  • Blocked : You can block any user. If you block any user then that user will instantly get logged out from app and won't be login or use the app again until you unblock them.

Status :

List of all approved status. You can sort them by type/date. You can search by title or user.

Status Settings
Status Settings
  • Button 1 : View Status Details.
  • Button 2 : Edit Status.
Status Settings
View Status Details
  • Edit Status : Go to Status Edit Page.
  • Comments : List of all comments on this status. You can delete any comment.
  • Transactions : List of all transactions of this status.
Status Settings
Edit Status
  • Allow Comments : You can turn On or Off status comments.
  • Enabled : You can turn On or Off status comments visibility to everyone.
  • Thumbnail : You can change thumbnails of the status.

Status Review :

Status Review Settings
Status Review
  • Multiple : You can select all items on the page and approve or delete them at once.
  • Button 1 : View or update details of the status.
  • Button 2 : Approve the status.
  • Button 3 : Delete the status. If you delete any status then the uploaded files will also get deleted.

Slide :

Manage slides of the app.

Slide Settings
Slide Settings
  • Slide Type : There are 3 type of slides.
    • Status : When clicking on the slide user will be navigated to the status details page.
    • Category : When clicking on the slide user will be navigated to the category status page.
    • Custom : You can set any custom link. User will get navigated to that link. You can set link as empty, and it'll behave like a banner.
  • Status Type : If you choose slide type as status then you'll be asked to select a status. You can select by 2 methods.
    • Status Code: You can select a status by it's unique code.
    • Status List: You can select a status from the list of all status.
  • Title : Status Title.
  • Image : Image that will be displayed at the slide section.

Currency :

First currency is your site primary currency.

Currency Settings
Currency Settings
  • Name : Shortname of the Currency
  • Symbol : Currency symbol to show in front of amount
  • Rate : Currency rate against app points. 1 unit currency = X points.( ex: 1$ = 1000 points)

Withdrawal Methods :

You can add unlimited withdrawal methods. There are to type of method. Girt Card and Usual. For the usual method, you can set a minimum amount, and user can withdraw any amount greater than that minimum amount. As for gift card, user needs to purchase that with fixed amount.

Withdrawal Method Settings
Withdrawal Method Settings
  • Gift Card : Is it a gift card or not.
    If yes then you'll have to create options for this gift card.
    While creating option choose this method as parent.
  • Name : Name of the method
  • Slug : Url format unique name of the method.
  • Minimum Amount : Minimum amount to withdraw from this method.
    For gift card it's the fixed price.
    While creating parent gift card leave this empty.
  • Logo : Logo for the method.

Withdrawals :

Withdrawal request from the users. You can click on username to view user details.

Withdrawals Settings
Withdrawals
  • Button 1 : View Withdrawal Details.
  • Button 2 : Approve the request and change status to successful. Do this after sending the money or gift.
  • Button 3 : Reject the request. If you reject the request, user will get refund of the amount he paid for this request. While rejecting you'll have to give a reason for users to see.

Deposit Methods :

Automatic and manual deposit method list. You can turn them On or Off by editing them. You can only add new manual method. To add any new payment gateway, please contact us.

Deposit Methods Settings
Deposit Methods Settings
  • Name : Name of the method
  • Slug : Url format unique name of the method.
  • Minimum Amount : Minimum amount to deposit from this method.
  • Instructions : Instructions to follow while making the deposit.
  • Logo : Logo for the method.

Deposits :

Deposit request from the users. You can click on username to view user details.

Deposits Settings
Deposits
  • Button 1 : View Deposit Details.
  • Button 2 : Approve the request and change status to successful. It'll add the amount to the user's fund.
  • Button 3 : Reject the request. While rejecting you'll have to give a reason for users to see.

Reports :

Reports against posts. You can click on username to view user details.

Reports Settings
Reports
  • Button 1 : View Report Details.
  • Button 2 : View the reported status. You can take action manually after reviewing that status.
  • Button 3 : You can send a message to both of the users regarding the report.
  • Button 4 : After reviewing and taking action, you can delete the report.

User Manual

Here you'll learn how the frontend works.

Upload :

You can turn off any of this these upload system.

Upload Image :

Upload Image
Upload Image
  • Daily Limit Left : For every status you post your limit will get decreased by 1. If it's 0 you won't be able to post until tomorrow.
  • Image : Choose an image file for your image status.
  • Title : Write a suitable title for your image status. Minimum 6 characters required.
  • Description : Write a suitable description for your image status. Minimum 10 characters required.
  • Categories : Choose at least one or multiple categories related to your status.
  • Languages : Choose at least one or multiple languages related to your status.

Upload Video :

Upload Video
Upload Video
  • Choose Video : Choose a video file for your video status.
  • Thumbnail : If you choose "Screenshot Only" or "Screenshot + Covert" in the settings then it will be optional. If they provide an image thumbnail will be generated from this image, otherwise server will take a screenshot using FFMPeg and set it as thumbnail. If FFMpeg is disabled then it will be required to provide an image.

Upload Youtube :

Upload Youtube
Upload Youtube
  • Youtube URL : Provide a valid youtube video URL.
  • Thumbnail : . If they provide an image thumbnail will be generated from this image, otherwise server will use original YouTube thumbnail.

Status :

Status details
Status details
  • Like : Like the status. You can't undo like once it's done.
  • Favourite : Add status to you favorite collection.
  • Download : Download the media. You can't download the YouTube video.
  • Report : If you have any problem with the status then report it to the admin.

Menu :

Main Menu
Main Menu
  • My Profile : View your profile and statuses. You can also edit your profile from here.
  • My Points : View your available balance and latest transactions. You can also view your withdrawal history and create new request.
  • Inbox : You can view messages from server and admin from here. That badge is your new unread message count.
  • Fund : View your available fund and deposit history. You can create a new deposit.
  • Advertisement : You can view your previous ads or create a new one.
  • Leaderboard : User can the leaderboard prize-pool and top users with their points and see his own rank. It'll be hidden if you turn off leaderboard from settings.
  • Favourites : User can add status as favourite to make a collection here.
  • Invite Friends : User can invite their friends with their referral link and get rewards.
  • Daily Limits : User can check their daily limits from here.
  • Support Tickets : User can create or view their supports. On the active ticket, they can send up to 2 messages until getting a reply from admin panel.
  • Settings : They can manage their settings.
  • Logout : Log out from the app.

Wallet :

Here you'll learn about points and withdrawal.

Points and Transactions :

User Points
User Points
  • Withdrawal History : User can view all their previous withdrawal and their status.
  • Withdraw Balance : User can create a new withdrawal request.
  • Available Balance : It'll show their earned points and amount in their currency.
  • Lifetime : It'll show their lifetime earning amount in their currency.
  • 1 $ : It'll show their currency value in points [currency rate].
  • Latest Transactions : It'll show their last 20 transactions from where and when they earned points. If they click on the transaction, they will be navigated to the status details page.

Withdrawal History :

Withdrawal History
Withdrawal History
  • Total Withdraw : It'll show their lifetime withdrawal amount in their currency.
  • Click on any transaction to see more details.

Withdrawal Method :

All the active withdrawal methods will be listed here.

Withdrawal Method
Withdrawal Method

Withdraw Amount :

Non gift card method will be shown like this.

Withdraw Amount
Withdraw Amount
  • Amount : User can enter the amount they want to withdraw. Amount must be greater or equal to minimum amount.
  • Payment Info : User will provide information to send the amount to them (ex: email/id).

Withdraw Gift Card :

Gift Card will be shown like this.

Gift Card
Gift Card
  • Gift Card Options : All the child of the parent gift card will be listed here. They will get details after selecting one.
  • Price : Fixed price for this method.
  • Payment Info : User will provide information to send the gift card to them (ex: email/id).

Packages :

Manage membership package.

Package Settings
Manage Package
  • End Date : Package renew / expire date.
  • Available Packages : All your packages will be listed here.
  • Package Action Button : There are 3 options.
    • Upgrade Package : If your current package price is less than selected package then it'll show upgrade package.
    • Downgrade Package : If your current package price is higher than selected package then it'll show downgrade package.
    • Extend Package : If your current package and selected package is same, and it's not the free package then it'll show extend package. It'll extend current package by 30 days.
  • Package Details : All the package benefits will be shown here.

Deposit :

All deposit will use the primary currency of the app. Here you'll learn about deposits.

Fund Page :

User Fund
User Fund
  • Available Fund : It'll show their available fund and their value in points.
  • Advertisement : Navigate to advertisement page.
  • Recharge : Navigate to deposit page.
  • Deposit History : Click on any deposit to see more details.

Deposit :

Deposit Fund
Deposit Fund
  • Deposit Methods : Deposit methods will be listed here.
  • Amount : User can enter the amount they want to deposit. Amount must be greater or equal to minimum amount.
  • Payment Action : There are 3 types of action.
    • Stripe : User need to provide their card info and payment will be completed automatically on site and amount will be added to their fund.
    • Mollie : They'll be redirected to mollie website for payment and after successful process they'll be redirect back to fund page and their fund will be added automatically to their fund.
    • Manual : Request will be submitted to the admin. Admin will take action from the admin panel.

Advertisement :

User can only create ad from their fund balance.

Advertisement
Advertisement
  • Ad Type : There are 2 types of ad.
    • Boost Status: You can any of your status.
    • Custom Ad: Create a custom ad.
  • Ad Location : There are 3 ad location available.
    • Feed: Your ad will be shown in feed between posts. [Boost Status ad only support feed ad]
    • Banner: Banner ad will be shown in the status details page.
    • Feed + Banner: Feed image will be shown in feed and banner image will be shown on status details page.
  • Feed Image : Image for the feed ad to show between posts. [Boost Status ad will use status thumbnail]
  • Banner Image : Image for the banner ad to show in status details page.
  • Title : Title for your ad.
  • URL : Action url for your ad.
  • Pricing Type : Explain in Ad Settings

Settings :

User can only create ad from their fund balance.

Settings
Settings
  • Change Password : User can change their password.
  • App Theme : User can change the app theme from here. They can also change it from the header options. If no theme is selected then it'll use dark theme as default.
  • Choose Languages : User can choose their preferred languages. Only status from selected language will be visible to them. If none selected then it'll show from all languages.
  • Currency : User can choose their currency. Withdraw balance will be shown in this currency. It'll use app default currency if not selected.

Update Guide

Follow the instructions below to update your existing app to the latest version.

1.3 :

Unzip the update.zip file from the downloaded files.

API :

  • Delete the "vendor" folder from your API root directory.
  • Upload api.zip file on your root directory and unzip the file. It'll automatically update and replace files to the latest version.

Admin Panel :

  • Go to your admin domain root folder and delete "assets" folder, "index.html" and "config.js" file.
  • Upload admin.zip file in your root directory and unzip the file. It'll automatically update and replace files to the latest version.
  • Edit the "index.html" file and update the meta-tags. [Titles, Description etc.]
  • Edit the "config.js" file and update your API URL.

User Panel :

  • Go to your client domain root folder and delete "assets" folder, "index.html" and "config.js" file.
  • Upload the client.zip file in your root directory and unzip the file. It'll automatically update and replace files to the latest version.
  • Edit the "index.html" file and update the meta-tags. [Titles, Description etc.]
  • Edit the "config.js" file and update your API URL.

Database :

Update Settings
Update Database
  • Go to your admin panel.
  • Navigate to settings, and you'll see a new update tab.
  • Click on the update button, and it'll update your database, and everything of the latest version will work fine.