November 21, 2022

Dream Space Screencast

Dream Space is robust platform for developer. Push your development skills to the next level, through this screencast learning platform.

Dream Space Screencast

Dream Space is a robust platform for developers. Push your development skills to the next level, through this screencast learning platform.

The screencast is a video recording of a computer screen, typically with audio narration. The screencast is a great way to learn new skills, and Dream Space is a platform that provides screencast learning for developers.

Dream Space provides a variety of screencast courses, from beginner to advanced levels. The courses are categorized into several topics, such as Laravel, InertiaJS, ReactJS, and more.

There are also several courses that give you free to-watch the courses, and also paid courses. The paid courses are permanently accessible, and you can watch them anytime.

Built with Laravel, InertiaJS, ReactJS, and integrated with Midtrans payment gateway Core API integration method.

Core API is a simple integration method that allows you to build your own payment page. Core API is suitable for developers who want to develop a custom payment page.

Live demo : Not available yet.

Source code : GitHub

Features

Some features of this application:

  • Series
  • Videos
  • RBAC (administrator, instructor, student)
  • Payment Gateway
  • Like and Comment
  • Profile Activity
  • OAuth
  • more details just clone my repository totally free. 😁✌

Tech Stack

Prerequisites

Notes

Some features are not available yet.

Midtrans only available for Indonesia. Supported payment channel : BRI, BCA, Mandiri, Permata, Gopay, Alfamart, and Indomaret.

Manual payment is not available yet.

SMTP Currently available for Reset Password, Email Verification, and Resend Email Verification. You can use Mailtrap for testing, and should run php artisan queue:work for sending email.

Installation and Usage

Clone the repository on my GitHub

git clone https://github.com/raprmdn/dream-space-screencasts.git
bash

cd into project directory

cd dream-space-screencasts
bash

Install dependencies

# composer
composer install
 
# yarn
yarn install
bash

Copy the example env file and make the required configuration changes in the .env file

cp .env.example .env
bash

Generate a new application key

php artisan key:generate
bash

Configure the .env file

.env
# SMTP with Mailtrap
# Mailtrap is a fake SMTP server for development and testing purposes.
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=
 
# Google OAuth
# You can use Google OAuth for login.
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_REDIRECT=
 
# Filesystem
FILESYSTEM_DRIVER=public
dotenv

Configure Midtrans payment gateway.

Open database/seeders/MidtransConfigSeeder.php and change following code.

MidransConfigSeeder.php
MidtransConfig::create([
    'status' => 'Disable',
    'environment' => false,
    'merchant_id' => 'Input your merchant id here',
    'client_key' => 'Input your client key here',
    'server_key' => 'Input your server key here',
    'sanitized' => true,
    'enable_3d_secure' => true,
]);
php

Symlink storage folder

php artisan storage:link
bash

Run the database migrations (Set the database connection in .env before migrating)

php artisan migrate
bash

Run the database seeder IMPORTANT

php artisan db:seed
bash

Run the development server

# PHP
php artisan serve
 
# Yarn for InertiaJS and ReactJS
yarn watch
bash

You can now access the server at http://localhost:8000

Using Laragon? Access the server at http://dream-space-screencasts.test

Google OAuth only available for localhost, which http://localhost:8000. Not support for http://dream-space-screencasts.test

Start queue worker IMPORTANT FOR SENDING EMAIL

php artisan queue:work
bash

Credentials

# administrator
email    : admin@dreamspace.com
password : 123123123
bash

For receiving Payment Notification Callback, you have to expose your local server to the internet. For testing purpose, you can use ngrok.

ngrok http 8000
bash

Copy the https url and paste it to Midtrans Dashboard > Settings > Configuration > Payment Notification URL, with /api/notification-handler endpoint.

https://xxxxxxxxxxxx.ngrok.io/api/notification-handler
bash

Screenshots

Sign In
Sign In
Home
Home
Series
Series
Watching a series video
Watching a series video
Comment section
Comment section
Topics
Topics
Payment Gateway with Midtrans
Payment Gateway with Midtrans
Profile Activity
Profile Activity
List series dashboard
List series dashboard
Create series
Create series
List videos dashboard
List videos dashboard
List topics dashboard
List topics dashboard
Role and Permissions
Role and Permissions
List orders
List orders
Midtrans payment configuration
Midtrans payment configuration
List payment type
List payment type
List payment channel
List payment channel
Create payment channel
Create payment channel
raprmdn
Rafi Putra Ramadhan
Laravel
ReactJS
InertiaJS