Documentation

Sponzy - Support Creators Content Script

Created: 03, September 2020 by Miguel Vasquez

Last update 18, June 2024

Sponzy - Support Creators Content Script is a platform where content creators, writers, designers, developers, photographers or any other branch can monetize their content by receiving subscriptions from their most loyal followers or just anyone who likes their work. They can create free and premium posts for their subscribers.

Features:

  • Built with Laravel 10
  • Live Streaming
  • Subscription system
  • Stripe Connect
  • Push Notifications
  • Stories
  • Users can set the monthly subscription price
  • Bootstrap 4
  • Font Awesome 5
  • Implemented GDPR
  • Banner Cookies Policy
  • Strong Customer Authentication (SCA) in stripe for customers with business in Europe.
  • Dashboard with Statistics and balance of your account
  • Storage (Local, Amazon, DigitalOcean, Wasabi and Pushr)
  • Notifications Real-time
  • Online / offline user
  • Google reCAPTCHA
  • Edit your page (profile)
  • Account verification by uploading ID or Passport
  • Verified users will display a badge
  • Create unlimited posts Free and Premium
  • Creators can change their name, username and password
  • Creators manage their posts
  • Feed from recent posts of creators subscribed
  • Infinite scroll
  • Categories
  • SEO on Pages
  • SEO on Categories
  • Upload Avatar
  • Upload Cover
  • Setting your Payout method (PayPal or Bank Transfer)
  • Make withdrawals when you reach the minimum amount established by admin
  • Search creators by Name/Username, categories and filter by featured and new
  • Integration with PayPal (Recurrent)
  • Integration with Stripe with (SCA) (Recurrent)
  • Creators Featured
  • Social Login with Facebook and Google
  • Email Verification
  • Users can like in posts
  • Users can comment on posts
  • Ajax Comments
  • Upload Photos
  • GIF Animated
  • Upload Videos MP4/MOV (quicktime)
  • Upload Audio MP3
  • Social profiles
  • Sending mail to the user when a withdrawal payment is sent.
  • You can report posts and creators
  • Current balance of the creator in the drop-down menu
  • XSS: Protection from cross site scripting
  • Secure Bcrypt password hashing
  • SMTP Support
  • Share your page URL (Profile) or share on Facebook and Twitter
  • Easy translation
  • Multilanguage
  • Option Delete Account
  • Link to @username on posts and comments
  • Progress bar on Upload
  • Message system with creators, they can send photos, videos and audios
  • Infinite scroll on Message system
  • Creator can edit posts and replace Media
  • Lazyload Images
  • History of payments made and received
  • Sitemap
  • Email notifications (New subscriber)
  • Blog
  • Contact us page
  • Invoices for payments made
  • Admin Features:
  • Set General Settings (Name Site,Keywords,Currency Position,others)
  • Change Logo/Favicon/Avatar Default/Images on Index
  • Manage Subscriptions
  • Accept / reject, ID verifications
  • Create/Update/Delete Categories
  • View/Delete Reports
  • View/Pay Withdrawals
  • Add code Google Analytics
  • Update/Delete Members
  • Create/Update/Delete Pages
  • Set Payment Settings
  • Set Profiles Social
  • Set limits (File size allowed,Min donation amount)
  • Statistics
  • Maintenance mode

Requirements:

  • PHP 8.2 or Greater
  • MySQL 5.7 or Mariadb 10.3.17
  • Ctype PHP Extension
  • cURL PHP Extension
  • DOM PHP Extension
  • Fileinfo PHP Extension
  • Filter PHP Extension
  • Hash PHP Extension
  • Mbstring PHP Extension
  • OpenSSL PHP Extension
  • PCRE PHP Extension
  • PDO PHP Extension
  • Session PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • GD or Imagick
  • EXIF
  • allow_url_fopen (PHP.INI) is ON
  • FFMPEG

Basic PHP configuration

  • max_execution_time minimum 12000
  • memory_limit set to 900M
  • post_max_size set the maximum upload value you want
  • upload_max_filesize must be the same maximum value of post_max_size

  • Setting MySQL

    • 1.) Create a database
    • 2.) Create a user for database
    • 3.) Import the Database
    • Log into your phpMyAdmin and import the sponzy.sql file located in the folder MySQL

    Uploading Files

    • Upload all files inside the folder "Script" to the "public_html" or "www" folder on your server. You can compress the files or use FTP.

    Installation

    • After you have uploaded all files, go to https://yousite.com/install/script
    • This screen will appear, all the boxes must be green to proceed with the installation.
    • Next, you can put the credentials of your database, your App name, URL and an email. You will be redirected to the Panel Admin after the installation has finished.
    • Credentials Admin Panel
    • Just enter from https://yousite.com/login and enter the following credentials.
    • User: Admin
      Pass: 123456
    • Panel Admin General Settings
    • Panel Admin General Settings Limits
    • Panel Admin Maintenance mode
    • if for some reason your IP changes, go to storage \ framework and delete the file named down and file maintenance.php go back to panel / admin / maintenance / mode put "off" and then "on" again, whenever you want to have your site in mode maintenance.
    • Panel Admin Theme
    • Create Cron Job
    • Click on Cron Jobs
    • Click on Common Settings and select Once Per Minute
    • /usr/local/bin/ea-php81 /home/username/public_html/artisan schedule:run >> /dev/null 2>&1
    • In the image above change ea-php81 for your PHP version, username for yours, and put the path where your project is located, in my case it is in public_html, but if it is in another directory you should put public_html/sponzy/ like this
    • Domain-specific example:
    • /usr/local/bin/ea-php81 /home/username/yourwebsite.com/artisan schedule:run >> /dev/null 2>&1
    • Click on Add New Cron Job and you're done!
    • The cron Job in Plesk should be configured as in the following image.
    • Mail Set Up
    • Go to https://yousite.com/panel/admin/settings/email
    • Storage
    • Go to https://yousite.com/panel/admin/storage
    • reCAPTCHA
    • Go to https://yousite.com/panel/admin/google
    • Get your API keys here https://www.google.com/recaptcha/admin/create
    • Stripe Webhook
    • Go to the Developers section of the Stripe dashboard and click on Webhooks. Click on Add endpoint
    • 1) Your webhook url must end in stripe/webhook
    • 2) Click on Signing secret to reveal the Stripe Webhook Secret that you must place in Dashboard > Payment Settings > Stripe
    • 3) The events you should add to your webhook
    • API Version 2020-08-27
    • Stripe Connect
    • Set the countries or the country you want to send direct payments to your members at https://dashboard.stripe.com/settings/connect/express
    • PayPal
    • Login into your PayPal account.
    • Go to the My apps & credentials section, click on Live button and then on the Create app button.
    • Copy the Client ID and Secret in Panel Admin > Payments Settings > PayPal.
    • Go to the My apps & credentials section, click on Live button and then select your app.
    • Scroll down to LIVE WEBHOOKS and click on the Add webhook button.
    • On the Webhook URL field paste your webhook URL https://yourwebsite.com/webhook/paypal
    • Under the Events types select All events and save your changes.
    • Go to the My apps & credentials section, click on Live button and then select your app.
    • Copy the Webhook ID in Panel Admin > Payments Settings > PayPal
    • CCBill (Adult content allowed)
    • The first thing you need to do is enable DYNAMIC PRICES on your CCBill account - contact their live support https://support.ccbill.com
    • Creating a FlexForm
    • Select New Form, as you do not have any existing forms.
    • Enter the name you want in for the form and select the Allow for dynamic price to be passed to form box and click save.
    • Copy Flex Form ID in Panel Admin > Payment Settings > CCBill
    • Sub Account
    • If you don't have one, contact CCBill support to get one.
    • Setup Webhooks
    • Go to the Subaccount Manager section, select Webhooks from the menu. Fill in the Webhook URL text box with the URL https://yourwebsite.com/webhook/ccbill
    • In Webhook format select URL Encoded
    • Click in Select All and click on update.
    • Disabling User Management
      • On the Account Info megamenu, click Sub Account Admin, then User Management.
      • Select Turn off User Management in the top section.
      • Select Do Not Collect Usernames and Passwords in the Username Settings section.
      Create Library of URL (Approval)
    • Click the URLs Library button in the upper-right to create a new URL. The Saved URLs Editor dialog displays.
    • 1. Use the fields under Add New to create a new URL with the following properties.
      2. URL Name. Enter a meaningful name for this URL. Forexample: Payment Success
      3. URL. Under URL, enter the base URL for your Site store. https://yourwebsite.com/ccbill/approved
    • Approval redirect to the Site
    • 1. Click the arrow button to the left of your new flow to view the details. Approval Tile.
      2. Under the green Approve arrow, click the square to modify the action.
      3. Approval URL. In the left menu, select A URL. Select Select a Saved URL and select the URL your created earlier (e.g. Payment Success).
      4. Redirect Time. Select a redirect time of 1 second using the slider at the bottom and save the form. (e.g. 4 seconds)
      If you have any problems or questions contact CCBill support https://support.ccbill.com
    • Paystack
    • Get yourself a free Paystack account
    • Get your API key from here https://dashboard.paystack.com/#/settings/developer
    • Copy the API keys to Panel Admin > Payment Settings > Paystack
    • Don't put anything in Callback URL
    • In Webhook URL put https://yourwebsite.com/webhook/paystack
    • Coinpayments
    • Get yourself a free Coinpayments account
    • Get your Merchant ID from here https://www.coinpayments.net/acct-settings
    • Get your IPN Secret Key from Account Settings -> Merchant Settings -> IPN
    • Copy the API keys to Panel Admin > Payment Settings > Coinpayments
    • Mercadopago
    • Get yourself a free Mercado Pago account
    • Get your Access Token from here https://www.mercadopago.com/mlb/account/credentials
    • Copy the Access Token to Panel Admin > Payment Settings > Mercadopago
    • Flutterwave
    • Get yourself a free Flutterwave account
    • Get your Public Key and Secret Key from here https://dashboard.flutterwave.com/dashboard/settings/apis
    • Copy the API keys to Panel Admin > Payment Settings > Flutterwave
    • Mollie
    • Get yourself a free Mollie account.

    • Get your API key from here https://www.mollie.com/dashboard/developers/api-keys.
    • To activate the test mode is your dashboard mollie
    • Enable payment methods: click on settings and then Payment methods
    • Then enable what you want, some payment methods work only with certain currencies, USD only accepts Credit Card and PayPal, EUR is accepted by all payment methods. Here you can see more details https://docs.mollie.com/payments/multicurrency
    • Copy the API keys to Panel Admin > Payment Settings > Mollie
    • Razorpay
    • Get yourself a free Razorpay account
    • Get the API Keys from here https://dashboard.razorpay.com/#/app/keys
    • Copy the API keys to Panel Admin > Payment Settings > Razorpay
    • Coinbase
    • Get yourself Coinbase Commerce account in https://commerce.coinbase.com/signin
    • Go to https://commerce.coinbase.com/dashboard/settings
    • Search for API keys
    • Click on Create an API key, copy the key and add it into the Panel Admin into Panel Admin > Payment Settings > Coinbase
    • Search for Webhook subscriptions
    • Click on Add an endpoint and add following url https://yourwebsite.com/webhook/coinbase
    • Click on Show shared secret and add that secret into Panel Admin > Payment Settings > Coinbase
    • NowPayments (Adult content allowed)
    • Login into your NowPayments account, using https://account.nowpayments.io/sign-in
    • Go to https://account.nowpayments.io/store-settings
    • Add a new API Key
    • Copy the key and add it into the Panel Admin into Panel Admin > Payment Settings > NowPayments.
    • Go back to your NowPayments account over Store settings and generate an IPN secret key
    • Add secret into the Panel Admin, over at >Panel Admin > Payment Settings > NowPayments
    • The next step is to add crypto wallets into your NowPayments account.
    • Recommendation adding as many wallets as possible with different crypto currencies so the conversion rate will be lower.
    • Recommendation adding a payment covering percentage into your NowPayments account representing percentage of the payment that needs to be paid to be considered completed.
    • Binance
    • Get yourself a free Binance account
    • Get the API Keys from here https://merchant.binance.com/en/dashboard/developers/api
    • Copy the API keys to Panel Admin > Payment Settings > Binance

    Social Login

    • Go to https://yousite.com/panel/admin/social-login

    Live Streaming (Agora.io)

    • Get yourself account Agora.io
    • Go to https://console.agora.io/ and Click on New Project, give a project name and choose Testing mode: APP ID
    • [IMPORTANT] Switch to live mode
    • The configuration should look like this
    • Go to Panel Admin > Live Streaming enable and set the APP ID

    Push Notifications (OneSignal)

    • Get yourself account Onesignal
    • Step 1:
    • Step 2:
    • Step 3:
    • Step 4:
    • Go to Panel Admin > Push Notifications enable and set the OneSignal App ID and OneSignal Rest API Key

    Customize

    • Language files
    • Find this lines in lang / en /
    • /*
      |--------------------------------------------------------------------------
      | Admin Language Lines
      |--------------------------------------------------------------------------
      |
      */
      
      'admin'                     =>      'Panel Admin',
      'role_admin'                =>      'Admin',
      'dashboard'                 =>      'Dashboard',

    How to add a new language

  • Duplicate the folder lang / en
  • Rename to your language for example es
  • Translate the strings
  • Duplicate the file public/ js / jqueryTimeago_en.js and rename ie: public/ js / jqueryTimeago_es.js
  • Translate the strings the new file
  • Go panel admin https://yourwebsite.com/panel/admin/languages/create and add you new lenguage

  • Translate Slogan, Description and Keywords (SEO)

  • Go to lang / en / seo.php
  • <?php
    
    return array(
    
    /*
    |--------------------------------------------------------------------------
    | SEO Language Lines
    |--------------------------------------------------------------------------
    |
    */
    "slogan" => "Support Creators Content", // New on v4.0
    "description" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ut tortor rutrum massa efficitur tincidunt vel nec lacus. Curabitur porta aliquet diam, eu gravida neque lacinia.",
    "keywords" => "donations,support,creators,sponzy,subscription,content",
    );

    Translate Categories

  • Create a file called categories.php in the folder of the language to be translated, for example lang / es
  • <?php
    
    return array(
    
    	/*
    	|--------------------------------------------------------------------------
    	| Categories Language Lines
    	|--------------------------------------------------------------------------
    	|
    	*/
    	"Animals" => "Animales",
    	"Business" => "Negocios",
    	"Charity" => "Caridad",
    );
  • The key identifier will be the Slug / URL of the category
  • Translate Shop Categories

  • Create a file called shop-categories.php in the folder of the language to be translated, for example lang / es
  • <?php
    
    return array(
    
    /*
    |--------------------------------------------------------------------------
    | Shop Categories Language Lines
    |--------------------------------------------------------------------------
    |
    */
    "exclusive-content" => "Contenido exclusivo",
    "handmade" => "Hecho a mano",
    "snapchat-sales" => "Ventas Snapchat",
    );
  • The key identifier will be the Slug / URL of the category
  • Path the files

  • Home page: resources > views > index > home.blade.php
  • Home Login: resources > views > index > home-login.blade.php
  • Home - Logged in user: resources > views > index > home-session.blade.php
  • Creators: resources > views > index > creators.blade.php
  • Profile user: resources > views > users > profile.blade.php
  • Edit my page: resources > views > users > edit_my_page.blade.php
  • Navigation bar: resources > views > includes > navbar.blade.php
  • Navigation bar (Mobile): resources > views > includes > menu-mobile.blade.php
  • Footer main: resources > views > includes > footer.blade.php
  • Footer tiny: resources > views > includes > footer-tiny.blade.php
  • Translate Pages

  • Just create a page by selecting the new language, remember that you must put the same Slug / URL

  • Sitemap

  • https://yoursite.com/sitemaps.xml

  • Troubleshooting

  • I can't turn off maintenance mode
  • Go to storage / framework and delete the file named down and file maintenance.php go back to Panel Admin > Maintenance mode put "off" and then "on" again, whenever you want to have your site in mode maintenance.
  • Error creating an account
  • Make sure you have correctly configured the email in the admin panel (Panel Admin > Email settings)
  • Error 404 in the installer
  • Check that your .htaccess file has not been corrupted when uploading to your server.
  • Error 500 in the installer or on the home page
  • Check that your .env file has not been corrupted when uploading to your server. It must have a dot before the name, and you must have at least PHP 8.2
  • Admin login when Disable registration/Email login is enabled
  • URL: https://yourwebsite.com/login/admin
  • Twitter Login Error
  • The app must be created using version 1.0
  • EPUB files not displaying in Digital Ocean
  • Configure CORS https://docs.digitalocean.com/products/spaces/how-to/configure-cors/

  • Make sure these folders and files have 0755 permissions

    Files
  • .env
  • Folders
  • bootstrap / cache /
  • public / img-category /
  • public / temp /
  • public / uploads /
  • storage

  • How to update

  • Go to the Upgrades folder, select the version you want, click on the README.html file and follow the steps.

  • Sources and Credits

    • Laravel - https://laravel.com/
    • jQuery - https://jquery.com/
    • Bootstrap - https://getbootstrap.com/
    • Font Awesome - https://fontawesome.com
    • IcoMoon - http://icomoon.io
    • jquery Form // malsup.com/jquery/form/
    • jqueryTimeago.js // http://timeago.yarp.com/
    • Readmore - http://jedfoster.com/Readmore.js/
    • Fonts - https://www.google.com/fonts
    • Tinymce - http://www.tinymce.com/
    • Ckeditor - https://ckeditor.com/
    • Morris - http://morrisjs.github.io/morris.js/

    Any problem or doubt send me an email to support@miguelvasquez.net
    Do not forget to visit miguelvasquez.net


    Thank you for purchasing my script 😉