Plugins
Templates

Investy - Investment Template

Template page link: https://zeroqode.com/template/investy---investment-platform-template-1541741540434x762511404271927300

Introduction

Investy no-code app template offers you the functionality of an investment platform. Use it to manage investors & investments. Suitable for cryptocurrency payments and withdrawals. The template is suitable for treasury bills, fixed deposits, lending investments, cryptocurrency investments, etc. It has a variety of features and could be used in different ways.

Features

  • Fully responsive pages and user dashboard

  • Admin Dashboard for Management

  • Social sign-up via Facebook & Google

  • Cryptocurrency Payments and Withdrawal powered by Coinbase Commerce and Coinbase.

  • Card Payments Powered by Stripe (Paystack & Voguepay are disabled features now but you can activate them if needed)

  • Supports multiple investment plans

  • Automated returns settlement

  • Due returns forecast for planning

  • Referral system with sustainability built in.

Data Structure

User

User’s data contains the usual profile info (Photo, Name, Email Address) and also contains additional fields relating to investments, payments, referrals etc.

Investment

Users can make multiple concurrent investments with varying plans (Percentage returns) and terms (Contract length). The template comes with two plans which have hard-coded variables.

Return

Users get returns on their investment based on their plan and invested amount. Currently returns are generated monthly by an API workflow.

Withdrawal

Users can withdraw their earnings in BTC. Withdrawal amounts are immediately frozen and removed from their wallets and then the admin will manually approve the transfer.

Transaction

This datatype contains information about transactions made by the admin. He can either add funds to a user account or remove them. When doing so a transaction object will be created in the database.

Funding

This datatype contains information about fundings made by users to their account. More specifically when a user adds fund to his account, either using a credit card or crypto, this object will be created in the database.

Referral

Referrals are created when a new user signs up with an invite link. It has field for the referral, the referred and the amount of money gained from the first investment of the referred user. A user can find a list of referrals they made under promotions in their dashboard.

Bank

This datatype stores information about some existing banks. It is used by Voguepay only which is a feature that is disabled but can be set if there is such a need.

Account

This datatype stores information about a bank account. It is used by Voguepay only which is a feature that is disabled but can be set if there is such a need.

Config

Config datatype contains information used across the app. It contains all kinds of links as well as the logo of the template. All this information can be modified on the admin page.

FAQ

This datatype contain a list of frequently asked question as well as the answers to them.

Pages

Index

This is the main landing page of the template and contains basic information for new users to learn more about the platform. It has a header, hero, benefits section, basic instructions and call to action to become an investor, plans presentation, potential earnings calculator, testimonials section, FAQ and footer.

Signup

This page is where users sign up. They can sign up using email or via social media like Facebook or Google.

Login

This contains the login form and allows users to login using email or social media like Facebook or Google.

Dashboard

This is the core of the template at least from the user's perspective. Here the user will make all his investments and manage them, will fund his account, make withdrawals and will find a referral link as well as the list of people who signed up using that link.

Dashboard page

Admin

The admin page provides a set of well put in place dashboards and tools to manage the app. Here the admin can manage users, investments, returns, user withdrawals and app settings.

In the Users tab admin can view information about each user and make changes to their wallet balance.

In the Investments tab the admin can view information about every investment and make changes like: adjust the investment, pause/activate the investment or delete the investment.

The Returns tab displays the information about returns on existing investments.

The Settings tab gives the admin the ability to change the logo across the app as well as useful links.

Admin page

About

This page gives an overall description of how the platform works and what are its goals and who are its owners.

Invite

The invite page is the page where the user lands when accessing a referral link. From there he can go to the signup page and will be linked to the user that has referred him. The referrer will receive a bonus from the first investment of his referees.

Confirmation

This page is used to resend the confirmation email.

Confirmed

This is the page where the user lands when accessing the confirmation link from his email.

Privacy

This page displays the privacy policy of the platform.

Terms

This page displays the terms of service of the platform.

Reset_pw

This page is where users can set a new password for their account.

404

This page tells your site viewers the requested page is unavailable or, in some cases, doesn't exist.

Reusable elements

This element is used at the top of the page and offers overall navigation through the platform.

The footer is at the bottom of the page. Its main purpose is basic navigation through the platform.

Referral

This reusable element is used to link the referrer with the person that registered using a referral link (referee). It involves the use of local storage in order to do so.

User actions

This element is used on the admin page giving the admin the option to edit a user's wallet balance.

Withdrawal actions

This element is used as well on the admin page and is facilitating the approval and marking a payment as paid.

Investment actions

This reusable element is used on the admin page giving the admin the option to pause/activate an investment as well as adjust its amount and delete it.

Specific References

Signing up

After a user signs up, the social network they used is stored to their object and they are forwarded to the dashboard.

Authentication

You would need to create an app/project in the developer console of each social network:

Facebook: https://developers.facebook.com

Google: https://console.developers.google.com

Ensure that you add all live & test URLs for these pages:

/signup

/signin

/dashboard as authorized redirect URLs.

You can check the Bubble forum or the developer guides of the social networks if you’re having trouble.

Navigation is straightforward on all pages but dashboard, that features some AJAX-style navigation.

Dashboard

Navigation in the dashboard makes use of custom states and conditions. It also makes use of Javascript to switch between the dashboard view and "New investment" view. Be sure not to delete any elements inside “Group Plugins”.

Admin Dashboard

Navigation in this case makes use of custom states and conditions.

Investments

Users can make investments by clicking "New investment" button on the dashboard. They can then:

  • Add amount of their investment

  • Choose a plan (Custom state on Group Plan Switch): the button for switching between plans validates the value of investment amount input and shows alerts if they don’t meet the hard-coded minimums.

  • Choose a term (Custom state on Group Term Switch)

  • Then proceed to make payment via wallet (the wallet can be funded using credit cards or crypto).

This template uses "Backed workflows" to achieve some of its functionalities.

In order for them to be working properly, a paid Bubble plan will be needed. Without a paid plan these functionalities will be disabled. (New investments will not be added unless you have a paid Bubble plan ).

Returns

Returns are handled by the return_settlement API workflow which is set to run monthly after a successful investment. A new return is created every month until the tenure is finished. The returns are calculated from return_percentage and return_naira fields on the related investment object.

Referrals

Each user has a referral code created upon sign up.

The referral system makes use of HTML5 local storage. Existing users can invite their friends with their referral link which includes their code. When their friends visit this link loads a dedicated page that grabs & stores the referral code to HTML5 storage.

If the visitor proceeds to sign up, a condition is true workflow will retrieve the stored referral code and a custom event will create a new referral object and add the referrer to the newly signed up user.

When this newly signed up user (referee) makes an investment, within the investment payment confirmation workflow, the referral object created earlier is given value and the referrer’s total balance is increased.

Note: The referral system is built such that referral gains are only added to the referring user's total balance. The wallet_balance remains the same. This means the referring user cannot immediately withdraw referral earnings but can only use them to make investments. You are free to change this behavior. To do so go to step 8 under cb_confirmation API workflow and you can add value to the referrer’s wallet balance as well.

Change referral reward: This is hard-coded within the cb_confirmation API workflow and to change it you simply need to change 0.05 value on Step 7. So, a 10% reward will become 0.1.

Withdrawals

Payouts/Withdrawals of earnings are made in Bitcoin using the OpenNode API.

Steps to set it up:

- Visit https://dev.opennode.co/ to create a development account - Create an API Key with the needed permissions on https://dev.opennode.co/settings/api - Insert the API key in the plugins tab - Use available API calls as required - When you are ready to go live sign up for live API keys at https://app.opennode.co/signup - Replace the live API key in the plugins tab

Note: Use API calls in conjunction with the Environment element in other to dynamically change the API URLs so that it works in the dev environment when you are testing in dev mode and works in the production environment in the live mode of your app.

OpenNode has minimum withdrawal amount of 0.002 BTC Check https://developers.opennode.co/ for more information

Withdrawal fee:

Setup The withdrawal fee is hard-coded to 5% and can be changed in step 2 of the confirm withdrawal workflow. You need to change 0.05 and 0.95. If you want your fee to be 8%, you will change 0.05 to 0.08 and 0.95 to 0.92.

Payments

This template uses Coinbase commerce for cryptocurrency payments and Voguepay for Card Payments

Coinbase Commerce Setup:

  • Visit https://commerce.coinbase.com/ and sign up. You will be give a mnemonic seed to use to create a new crypto wallet. Do that and be sure to backup the seed.

  • Go to settings in your Coinbase commerce, scroll to whitelisted domains and add your root domain. Example https://myinvest.bubbleapps.io Be sure to add your live domain when you go live.

  • Copy your API key and use it for the Coinbase Commerce API connector call in plugins.

  • Go to Settings> API in Bubble to generate an API token to use below

  • Go back to Coinbase Commerce and under Webhook subscriptions add two endpoints for your dev and live version like so

Dev: https://myappname.bubbleapps.io/version-test/api/1.1/wf/cb_confirmation?api_token=your_api_token

Live: https://myappname.bubbleapps.io/api/1.1/wf/cb_confirmation?api_token=your_api_token

Voguepay Setup:

  • Visit https://voguepay.com/ and sign up for a business account

  • Locate the merchant ID in your settings

  • Under the dashboard page in your Bubble app search for the element HTML Voguepay and replace the merchant ID parameter with yours. You can also change your preferred currency here

Paystack Setup

  • Visit https://paystack.com/ and sign up as developer

  • Go to Settings > Developer

  • Under API Keys and Webhooks get your Test and Live keys respectively.

Note: In order to obtain your Live keys, you will need to register as business account.

Webhooks

This template uses one webhook for Coinbase commerce to confirm cryptocurrency payments. They are handled by the cb_confirmation API workflow.

Notes

You will find over notes for this template in Bubble. They are for workflows and fields that need explaining. Mostly in User data fields, dashboard workflows and API workflows.

Things to Note:

Admin Page

For security purposes the template has limited rights for potential customers. It means that users will not be able to use the admin features at full until this template is purchased and the editing features (delete or edit) are enabled.

If you already bought the template you can enable these features by following the next steps:

Under Data tab in the Editor, you could find the Data Type USER which has permission field of text type with admin and readadmin . When user permission is set to admin the Admin rights are enabled and user can edit, delete or approve from Admin page, however if readadmin permission is set the Admin rights are disabled for users.

User check

The workflow with conditions for page load which will set state to load page depending on USER permission type regarding the security measure for when a User has access to editing features or not.

Overlapping Elements

There are two groups on the homepage called Group VS and Group VS Mobile. They overlap each other. Be sure to make changes to both of them when customizing.

Demo to preview the template