ShowcaseAITesting Guide
← Back to app Documentation

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)

  1. Open a terminal in the unzipped folder (in VS Code: Terminal → New Terminal; on Windows you can also use PowerShell).
  2. 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 setup before 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)

  1. Open a second terminal (in VS Code click the + icon) so the first one keeps running.
  2. 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
  1. Open a terminal in the backend folder (a third one is fine, or stop the engine briefly).
  2. Type npm run check and press Enter.
  3. 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).
  4. 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.

  1. On http://localhost:4001, log in with one of the accounts above.
  2. 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).
  3. After login, a menu appears on the left — this sidebar is your map to every feature.
  4. To switch accounts later, use Logout (bottom of the profile menu) and log back in as the other type.
  5. 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

  1. Log in as an admin.
  2. Open Users from the admin sidebar.
  3. 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.
  4. 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).

  1. Open Image Studio.
  2. Type a prompt, e.g. "a cup of coffee on a wooden table, morning light."
  3. (Optional) Pick a Brand Kit to apply your brand's colours — see Section 6.
  4. 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.

  1. Open Text to Speech.
  2. Pick a voice, type a sentence, and preview the audio.
  3. 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.

  1. Open Voice Clone and upload a clear voice sample.
  2. Give it a name and create the clone.
  3. 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.
  1. 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.
  2. Click Generate. Video creation is not instant — it renders in the background.
  3. 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."

  1. Open Brand Kits → Add Brand Kit.
  2. 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.
  3. 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.

  1. Open Ad Copy Studio. Enter a product name.
  2. Choose a Framework (e.g. PAS), a Platform (e.g. Facebook / Instagram), a Tone, a Language, and how many variants you want.
  3. (Optional) pick a Brand Kit. Click Generate Ad Copy. (Each successful generation uses a small amount of credit — 0.1 by default.)
  4. 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.

  1. First, create a Talking Avatar Video (Section 5) and let it finish — the localizer needs a completed one to work from.
  2. Open Ad Localizer. Pick that video as the source.
  3. Paste the original script (the exact words spoken — the app translates from this).
  4. Select one or more target languages. The credit cost shows live (about 2 credits per language).
  5. 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.

  1. Open Projects and switch between the Video and Image tabs.
  2. 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.

  1. As a user: open Buy Credits from the sidebar. You'll see the packs.
  2. Click Buy Now — you're taken to Stripe's secure checkout page.
  3. Pay with Stripe's test card: number 4242 4242 4242 4242, any future expiry date, any 3-digit code, any postcode.
  4. You're returned to a success page, and your credit balance goes up. Your purchase appears under Purchase History on the Buy Credits page.
  5. (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.
  1. Log in as admin and click through each page above.
  2. Users: add a new user (20 credits), log out, and log in as them — the balance should show 20.
  3. 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).
  4. Prompts: add a prompt (a picture is optional), then check it appears for users in the matching tool.
  5. Community: pin a post and check it shows at the top of the user's Community page.
  6. Credit Packs: edit a pack's price and check the Buy Credits page shows the new price.
  7. 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). Admin → Product Avatar / Video Avatar → Add … Avatar Template
The Community page 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 after npm 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) AI Providers → SPEECHIFY_API_KEY
NewPortAI Lip-sync for talking videos and the Ad Localizer AI Providers → NewPortAI_KEY
Amazon S3 Storing the finished files Storage → AWS_* fields
Stripe Buying credits Payments → STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET
Email (SMTP or Mandrill) Password-reset and welcome emails Email
Pixabay / Unsplash / Pexels (optional) Stock media search Stock Media
MongoDB The database (users, credits, projects) Not in Settings — entered during npm run setup

Entering a key

  1. Log in as admin and open Settings from the admin sidebar.
  2. Paste the key into its field (for Stripe testing use the key that starts with sk_test_).
  3. 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.