Complete Walkthrough · No Technical Background Needed
Test ShowcaseAI from start to finish
This guide walks you through your entire application the way a first-time user would experience it — how to
switch it on, log in, and try every feature step by step. If you can follow a recipe, you can follow this.
🎬 AI video & image creation🗣️ Voice & avatars✍️ AI ad copy🌍 Multi-language localizer💳 Credits & payments
What is ShowcaseAI?
The one-paragraph version, in plain English.
ShowcaseAI is a website where businesses create marketing videos and images using artificial
intelligence. A user types in an idea or uploads a product photo, and the app produces things like
talking-avatar videos, product showcase clips, images, voiceovers, and ad copy — automatically. It runs on a
"credits" system: every creation costs a few credits, and users top up their balance by buying more.
Under the hood, ShowcaseAI is actually two programs working together. You don't need to understand the
code, but knowing this makes the setup steps make sense:
Program
Nickname
What it does
Runs on
backend/
"The engine" (backend)
Does the real work — logins, database, credits, and talking to the AI services.
Port 5000
frontend/
"The screen" (frontend)
The buttons, pages, and menus you actually click in your web browser.
Port 4001
💡
Why two? The screen never touches the database directly. When you click "Generate," the screen sends
a message to the engine, the engine does the work, and sends the result back. Both must be running at the
same time for the app to work.
Before You Begin
A short checklist so nothing surprises you.
💳
Third-party services & costs — not included with your purchase. ShowcaseAI connects to Kie.ai
(AI video and image models), AWS S3 (storage), Speechify (voice), NewPortAI (lip-sync), and optionally
Stripe (payments), SMTP/Mandrill (email) and stock media APIs. Accounts, API keys and usage fees for these
services are not included. You sign up with each provider yourself and pay them directly. The AI features do
not work until the required keys are entered in Admin → Settings. Prices and availability are set by
the providers and can change. Details: Third-party
services & costs.
The project is unzipped on your computer — you'll see two folders: backend (the engine) and frontend (the screen).
Node.js 20.19 or newer is installed (22 LTS recommended) — this is the tool that runs both
programs. Type node -v in a terminal to check. If you see "node is not
recognized," install it from nodejs.org first.
A MongoDB database — either MongoDB installed on your computer, or a free MongoDB Atlas cluster.
You'll need its connection address (it starts with mongodb:// or mongodb+srv://).
An internet connection — the AI features call online services (for images, voices, and video).
A modern browser — Chrome, Edge, or Firefox.
✅
You do not need to write any code. You'll type a few commands once, then do everything else by
clicking around in your browser — exactly like using any normal website.
1 Starting the App
You'll open two small terminal windows and leave them running. Think of them as the on-switch
for each program.
Step A — Set up the engine (first time only)
Open a terminal in the unzipped folder (in VS Code: Terminal → New Terminal; on Windows you can
also use PowerShell).
Type the following, pressing Enter after each line:
$ cd backend
$ npm install
$ npm run setup
The setup assistant asks a few questions. The package contains no settings file — setup creates backend/.env (with the database address and the two secrets) and frontend/.env from the .env.example files. For a first
test you can simply press Enter to accept each suggested answer. The one question you
answer yourself is the MongoDB address: press Enter for a MongoDB installed on this computer
(mongodb://127.0.0.1:27017/showcaseai), or paste your own Atlas address
(mongodb+srv://…). When it asks for the admin account, enter the email (default
admin@showcaseai.app), a name and a password. There is no default password: leave it
empty and setup generates a strong one and prints it once at the end — save it.
It then creates one demo user (not when NODE_ENV=production) and the starter data and prints the logins.
🔐
Secrets – set once, never change. Run npm run setupbefore you use the app or save any key in Admin → Settings. It fills in JWT_SECRET and SETTINGS_ENCRYPTION_KEY in backend/.env (they are empty in .env.example).
If SETTINGS_ENCRYPTION_KEY ever changes, every key saved in Admin → Settings becomes unreadable until the original value is restored — otherwise you would have to enter all keys again.
Changing JWT_SECRET logs every user out.
Keep a backup of backend/.env. If it is lost while the database still has data, restore the same values — a newly generated key cannot decrypt the old data.
♻️
If setup stops with an error (for example "could not connect to MongoDB"), fix the problem and run npm run setup again. Once setup has finished it runs only once: running it again says
"already set up" and changes nothing, so it can never overwrite your data.
Step B — Start the engine (backend)
$ npm run dev
Wait a few seconds until you see that the server is running and the database is connected. Leave this
window open — closing it switches the engine off.
Step C — Start the screen (frontend)
Open a second terminal (in VS Code click the + icon) so the first one
keeps running.
Type this, pressing Enter after each line:
$ cd frontend
$ npm install
$ npm run dev
The settings file frontend/.env was created by setup and points at your engine
(VITE_API_URL=http://localhost:5000/api/). Without it, the screen still uses that address. Open http://localhost:4001 in your browser.
⚠️
Keep both terminals open the whole time you're testing. Two windows = two programs. If the site
won't load, the most common reason is that one of them was closed or never finished starting.
🔌
Next time you only need npm run dev in each folder — npm install and npm run setup are first-time steps.
2 Checking the Setup
A one-minute test that tells you whether the installation is healthy before you try any
features.
🩺 Setup verification
TestTerminal →
backend
Open a terminal in the backend folder (a third one is fine, or stop the
engine briefly).
Type npm run check and press Enter.
Read the list: it checks the settings file, the database connection, that an admin exists, that the
starter data is loaded, and which service keys are filled in (it never shows the keys themselves).
Also open http://localhost:5000/api/health in your browser — you should see "status":"success".
What to expect: the last line says "All required checks passed." Warnings about missing
service keys are normal until you enter them in Admin → Settings (see here). A warning
that BACKEND_URL is "localhost" is also normal on your own computer — it only
means videos and images can't report back until the engine has a public address.
3 Logging In
There are two kinds of accounts. Setup creates one of each; visitors can also register themselves on the
sign-up page (/register) and an admin can create accounts in the admin panel.
Account type
What they see
Use it to test…
Normal user
The creative tools — video, image, voice, ad copy, etc.
The actual product experience.
Admin
A management panel — users, analytics, settings, credit packs, templates.
Running the business behind the scenes.
Logins (created by setup)
Email
Password
Type
Starting credits
The email you entered in setup (default admin@showcaseai.app)
The password you entered, or the generated one setup printed
Admin
— (admins don't use credits)
user@showcaseai.app
User@123#
Normal user (demo)
500
The demo user is for local testing only — its password is public. Delete it in Admin → Users
before you go live. Setup never creates it when NODE_ENV=production.
On http://localhost:4001, log in with one of the accounts above.
Before testing the AI features (videos, avatars, images, voice) you need two things: your own, paid
provider keys in Admin → Settings (Kie.ai, AWS S3, Speechify, NewPortAI — see API
Keys & Settings), and a public https BACKEND_URL (Settings → Site &
Branding), because Kie.ai sends finished results to <BACKEND_URL>/api/kie/webhook.
On localhost, generations stay "Processing" — for local testing run ngrok http 5000
and set BACKEND_URL to the https address it shows (how).
After login, a menu appears on the left — this sidebar is your map to every feature.
To switch accounts later, use Logout (bottom of the profile menu) and log back in as the other
type.
To add more people, log in as admin and use Users → Add User (see Section 9).
🧭
Whether you see the user menu (Video Studio, Image Studio…) or the admin menu (Users,
Analytics, Settings…) tells you instantly which kind of account you're logged into.
4 Understanding Credits Important
Almost every creation costs credits. The demo user already has 500, so you can start
testing straight away.
Credits are the app's "fuel." An account with no credits sees "Insufficient credit" when trying to
generate. There are two ways to get more credits:
Give credits as an admin (best for testing — instant and free).
Buy them through the Buy Credits page (tests the real payment flow — see Section
8).
Give a test user credits
Log in as an admin.
Open Users from the admin sidebar.
Find your test user, click Edit, enter an amount under Assign Credit (e.g. 100) and click Update. The amount is added to their balance.
Log back in as that user — the credit balance shows in the sidebar.
🪙
How costs work: quick things cost a fraction of a credit (an image about 0.15, a piece of AI text
0.1 by default); videos cost more (a talking-avatar video about 2 credits). For slow videos, credits
are reserved when you start and only charged when the video succeeds — you're never charged
for a failed render, and if a job never finishes the credits come back automatically after a while.
5 The Creative Studios
These are the core "make something" tools, found in the left sidebar. Test them in roughly this
order — simplest first.
🖼️ Image Studio
CoreSidebar → Image
Studio
Creates a picture from a text description (and optionally a reference photo you upload).
Open Image Studio.
Type a prompt, e.g. "a cup of coffee on a wooden table, morning light."
(Optional) Pick a Brand Kit to apply your brand's colours — see Section 6.
Click Generate. Your image appears in the gallery on the right.
What to expect: a generated image within a few seconds. This is the fastest feature to confirm the
app is working end-to-end.
🗣️ Text to Speech
CoreSidebar → Text to
Speech
Turns typed words into a natural-sounding voiceover you can download.
Open Text to Speech.
Pick a voice, type a sentence, and preview the audio.
Save it if you'd like to keep it (this stores it in your media).
🎙️ Voice Clone
CoreSidebar → Voice Clone
Creates a custom voice from a short audio sample, which you can then use for voiceovers.
Open Voice Clone and upload a clear voice sample.
Give it a name and create the clone.
The new voice becomes selectable under "My Voices" wherever you pick a voice.
🪙
Cloning a voice charges credits (around 5). Make sure your test account has a balance first.
🧑🎨 Avatar Studio
CoreSidebar → Avatar
Studio
Where your avatars (the "presenters" in talking videos) are managed. Browse the ready-made ones and any
you've created.
🎬 Video Studio
CoreSidebar → Video Studio
The heart of the app — several kinds of AI video. Each opens its own step-by-step builder.
Type
What it makes
Product Showcase Videos
A cinematic clip highlighting a product from a photo.
Product Avatar Videos
An AI presenter talking about your product.
Talking Avatar Videos
A presenter that speaks a script you write (with lip-sync).
Fashion Videos
A virtual try-on / fashion showcase clip.
Pick a video type, then follow its builder — choose an avatar, write a script (or use the AI
Writer button to generate one), and pick a voice.
Click Generate. Video creation is not instant — it renders in the background.
Check Projects (next section) to watch it move from "Processing" to "Completed."
⏱️
Be patient with videos. Unlike images, videos take a few minutes because they're rendered by an
external AI service. A "Processing" status is normal — it will flip to "Completed" (or "Failed") on its
own.
🌍
A Talking Avatar Video is the perfect thing to create first if you want to test the Ad
Localizer afterwards — it needs a finished talking-avatar video as its starting point.
6 The AI Ad Tools
These four tools make the app a complete "ad creation" platform, not just a video maker.
🎨 Brand Kits
CoreSidebar → Brand Kits
Save your brand's identity once — logo, colours, tagline, voice, and keywords — and apply it so every AI
creation stays "on brand."
Open Brand Kits → Add Brand Kit.
Fill in something memorable, e.g. name "Acme Coffee," tagline "Fuel your mornings," a bold
colour, and keywords "cozy, artisan." Tick Set as default → Create.
Now go to Image Studio, Ad Copy Studio, or the AI Writer and pick this kit — the
result should reflect your brand.
🔬
Best way to see it work: generate once with the kit selected, then again with the kit set
to "None," and compare the two results.
✍️ Ad Copy Studio
CoreSidebar → Ad Copy
Studio
Generates several ready-to-use ad variations following a proven copywriting formula, tailored to a platform
and tone — and saves your history.
Open Ad Copy Studio. Enter a product name.
Choose a Framework (e.g. PAS), a Platform (e.g. Facebook / Instagram), a
Tone, a Language, and how many variants you want.
(Optional) pick a Brand Kit. Click Generate Ad Copy. (Each successful generation uses a
small amount of credit — 0.1 by default.)
You'll get several ad cards — click the copy icon on any. Click History (top-right) to revisit
past generations.
🌍 Ad Localizer
CoreUses
creditsSidebar → Ad Localizer
The showpiece feature: takes one talking-avatar video and recreates it in other languages — translating the
script, re-voicing it, and re-syncing the lips. One video becomes ten.
First, create a Talking Avatar Video (Section 5) and let it finish — the localizer needs a
completed one to work from.
Open Ad Localizer. Pick that video as the source.
Paste the original script (the exact words spoken — the app translates from this).
Select one or more target languages. The credit cost shows live (about 2 credits per language).
Click Localize, then watch the new versions appear in Projects.
⚠️
This feature touches three live AI services in a row (translate → voice → lip-sync) and uses real
credits. If a language shows "Failed," hover it for the reason — that tells us which step needs
attention. It's the most complex feature, so test it after the simpler ones are confirmed working.
📝 Sales Copy
CoreGo to
http://localhost:4001/tool/sales-copy
The original single-block marketing copy writer (Ad Copy Studio is its upgraded sibling). It has no sidebar
link — reach it by typing the address directly.
7 Projects & Community
📁 Projects
CoreSidebar → Projects
Your library of everything you've made — videos and images. This is where you check whether a video has
finished.
Open Projects and switch between the Video and Image tabs.
Look at the status of each item: Processing (still rendering), Completed (ready to
view/download), or Failed.
💬 Community
CoreSidebar → Community
A social area where users share posts, like, and comment. Test posting, liking, and commenting.
8 Buying Credits (Payments) Stripe
This tests the real money flow — safely, using Stripe's "test mode" (no real charges).
Setup already created three example credit packs (Starter, Pro and Business). The only thing you need to add
is a Stripe test key in Admin → Settings → Payments — see API Keys &
Settings.
As a user: open Buy Credits from the sidebar. You'll see the packs.
Click Buy Now — you're taken to Stripe's secure checkout page.
Pay with Stripe's test card: number 4242 4242 4242 4242, any future
expiry date, any 3-digit code, any postcode.
You're returned to a success page, and your credit balance goes up. Your purchase appears under
Purchase History on the Buy Credits page.
(Optional) As admin: open Credit Packs → Add Credit Pack (e.g. name Test, 50
credits, price 5), save, and check it appears on the user's Buy Credits page.
💳
Test mode is completely safe. The 4242… card is a fake card provided by
Stripe — no real money moves. Never use a real card here while in test mode.
🧾
If Buy Credits says "Payments are not configured yet," the Stripe test key hasn't been saved in
Admin → Settings. That's expected until you complete the setup in the API Keys
section.
9 The Admin Panel Admin only
Log in as an admin (e.g. admin@showcaseai.app) to see the management side
of the business.
Admin page
What you can do
Dashboard
See overall numbers — users, creations, activity charts.
Users
Add users, edit their name and password, or remove them (admin accounts are not listed and a user's
email cannot be changed); set their status; assign credits; optionally send a welcome email
with a "set your password" link.
Prompts
Manage the ready-made example prompts (each with an optional picture) that users can pick from. Starts empty — you add them (see Adding Your Own Content).
Product Avatar / Video Avatar Templates
Upload and manage the ready-made avatars users can pick from (needs storage set up). Starts empty.
User Analytics
Dig into a specific user's activity.
Community Categories
Organise the community section.
Community
Moderate the community feed — pin good posts to the top, remove unwanted ones.
Credit Packs
Create and price the credit packs users buy on the Buy Credits page.
Settings
Enter the keys for the AI services, storage, payments and email — each with a Test button.
Log in as admin and click through each page above.
Users: add a new user (20 credits), log out, and log in as them — the balance
should show 20.
Deleted users: delete that user, log out, and try to sign up on /register
with the same email — you should see "This email can't be used to register. Please contact the site
administrator." Then, as admin, add the user again with the same email in Users → Add — the
message says "Deleted account restored with its previous data" and the old credits are back (plus any you enter now).
Prompts: add a prompt (a picture is optional), then check it appears for users in the matching tool.
Community: pin a post and check it shows at the top of the user's Community page.
Credit Packs: edit a pack's price and check the Buy Credits page shows the new price.
Settings: enter a key, click Save, then click its Test button — you should see a
success message. After saving, the key is shown as dots (it is never shown again in full).
10 Security Checks
Quick tests that prove the protections work. None of them need technical knowledge — just two
browser windows (for example a normal window and a private/incognito window).
Test
How
Expected result
Normal users can't open admin pages
Log in as user@showcaseai.app and type http://localhost:4001/admin/users in the address bar.
You are sent back to the user area. (Behind the scenes the engine also refuses every admin request
from a normal user.)
Deactivated users are logged out
Log in as user@showcaseai.app in one window. In the other, as admin, set
that user's status to inactive. Click anything in the first window.
The first window is logged out on its next action, and logging in again is refused. (Set the user
back to active afterwards.)
Reset links work once
Use Forgot password (needs email set up), open the link and set a new password. Open the
same link again.
The second time the link is rejected. Links also expire after 1 hour.
Logout ends the session
Log in as the same user in two windows. Click Logout in one, then click around in the
other.
The other window is logged out too.
Wrong file types are refused
Rename a text file to photo.jpg and try to upload it where an image is
expected.
The upload is rejected.
Prices can't be changed in the browser
Generate something in Creator Studio and note the price shown before you click Generate.
Your balance goes down by exactly the price shown — the engine calculates prices itself, so
tampering with the page cannot change them.
Password guessing is slowed down
Log out and enter a wrong password 11 times in a row.
You see "Too many login attempts. Please try again in 15 minutes." (Restarting the engine also
clears it.)
Automatic security test
The engine includes a script that runs 33 of these checks for you in about a minute. With the engine running
and setup finished, open a terminal in the backend folder and type (use your own
admin password; set SMOKE_ADMIN_EMAIL too if your admin email is not admin@showcaseai.app):
$ SMOKE_ADMIN_PASSWORD="your-admin-password" npm run smoke # macOS / Linux> $env:SMOKE_ADMIN_PASSWORD="your-admin-password"; npm run smoke # Windows PowerShell
npm run smoke runs scripts/security-smoke.js. Each
check prints a ✔ (passed) or ✖ (failed) line, followed by a summary such as "33 passed, 0
failed".
⏳
The automatic test deliberately triggers the "too many login attempts" protection. Afterwards, wait 15
minutes or restart the engine (Ctrl+C, then npm run dev) before logging in again.
Adding Your Own Content
A fresh installation has only the admin, one demo user, the AI model catalog, community
categories, credit packs and dropdown lists. Prompts, avatar templates and community posts are added by you
(as admin) — you need some of them to test the matching features.
To test…
Add this first
Where
The prompt picker in the studios
A prompt: choose the prompt type, give it a title and the prompt text, optionally add a reference image (needs storage), click Submit.
Admin → Prompts → Add Prompt
Avatar Studio
An avatar template: fill in the details, click Save Details, then upload its image and video files (needs storage).
A post: + Start Discussion, a title and a category (the 4 starter categories exist already). Admin can pin or remove posts.
Community
Buying credits
Check or edit the three example packs (name, credits, price).
Admin → Credit Packs → Add Credit Pack
The AI features
Your provider keys, then Test next to each.
Admin → Settings
Step-by-step instructions with every field are in documentation.html → Add your own content (manual)
(open it).
API Keys & Settings
The app relies on a few outside services. You enter their "keys" in the admin panel: Admin →
Settings. No files to edit and no restart needed. Step-by-step instructions for getting each key are in
documentation.html → Keys & Credentials.
🔐
Secrets – set once, never change. Save keys only afternpm run setup has run. If SETTINGS_ENCRYPTION_KEY in backend/.env ever changes, every saved key becomes unreadable until the original value is restored. Keep a backup of backend/.env. Details.
Service
Powers…
Settings group → field
Kie.ai
Images, videos & all AI text/translation
AI Providers → KIE_API_KEY
Speechify
Voices & voice cloning (clicking Test also loads the voice list)
Log in as admin and open Settings from the admin sidebar.
Paste the key into its field (for Stripe testing use the key that starts with sk_test_).
Click Save, then the Test button next to the service. A success message means it works.
🌐
Testing videos and images on your own computer: the AI service sends finished results back to the
engine's public address (Settings → Site & Branding → BACKEND_URL). localhost can't be reached from the internet, so use a tunnel tool such as ngrok
(ngrok http 5000) and paste the https://… address
it shows into BACKEND_URL.
🔐
Keys are secret. Never share them or post them online. Saved keys are stored encrypted and are never shown
again in full.
Troubleshooting
The things most likely to trip you up, and the fix for each. Running npm run check in the backend folder often points
straight at the problem.
What you see
Why
Fix
The website won't load at all
One of the two programs isn't running.
Check both terminals are open and finished starting. Re-run npm run dev in each.
"node is not recognized"
Node.js isn't installed.
Install Node.js 20.19 or newer, then try the commands again.
The engine stops with a message about JWT_SECRET
Setup hasn't been run yet.
Run npm run setup in the backend folder.
"Could not connect to MongoDB"
The database address is wrong, MongoDB isn't running, or Atlas is blocking your computer.
Check the address; start MongoDB; in Atlas add your IP under Network Access. Then run
npm run setup again.
Saved keys show as "not configured" after a restart, or the engine terminal says "could not decrypt"
The secrets in backend/.env are not the ones the keys were saved with (the file was replaced or regenerated).
Restore backend/.env from your backup and restart the engine; the saved keys become readable again. See Secrets – set once, never change.
"already set up" when running npm run setup
Setup runs once and never overwrites an installed database.
Nothing to fix — just log in. To start over (deletes all data): npm run setup -- --reset.
"Too many login attempts"
Too many wrong passwords (or the automatic security test just ran).
Wait 15 minutes, or restart the engine.
Forgot the admin password
—
Use Forgot password on the login page, or follow "Changing the admin login" in
documentation.html (MongoDB Compass).
"Insufficient credit"
Your account has no credits.
As admin, assign credits to the user (Section 4), or buy some (Section 8).
A video or image is stuck on "Processing"
It's still rendering — or the AI service can't reach the engine's public address.
Wait a few minutes and refresh Projects. On your own computer, set up a tunnel (see API Keys). Credits for a job that never finishes are returned automatically.
"File storage is not configured" or uploads fail
Amazon S3 isn't set up.
Fill in Settings → Storage and click Test. The bucket must allow public reading.
"Payments are not configured yet"
No Stripe key saved.
Add your STRIPE_SECRET_KEY in Admin → Settings → Payments.
Emails don't arrive
Email isn't set up.
Fill in Admin → Settings → Email. The engine terminal shows "Email not sent" when nothing is
configured.
"This model has no price configured"
A Creator Studio model has no price.
The model's price must be set in the database (see the Documentation, Troubleshooting).
An Ad Localizer language shows "Failed"
One of the translate/voice/lip-sync steps errored.
Hover the "Failed" tag to read the reason, and check all three AI keys with their Test
buttons.
A feature page is blank
The engine may have crashed or restarted.
Look at the engine terminal for a red error, restart it, and refresh the page.
🆘
Golden rule when something breaks: glance at the engine terminal (the backend one). Any
error message there is the clue — and the Troubleshooting section of documentation.html
explains most of them.