Digital Asset Marketplace Project Charter
Internship Project
Charter Book · Development Reference

Digital Asset Marketplace Platform

A web platform where users browse and get digital assets — animated backgrounds, wallpapers, emoji, overlays, fonts, sound effects and web tools — organized into packs, with an admin dashboard to manage everything. This page turns the charter book into a working reference for the build.

9Asset categories
3User roles
4DB collections
100%Responsive

01 · Overview

What we are building

A web platform where users can browse and get digital assets, and where an admin manages everything from a dashboard. The platform has three main parts, and it must work well on both desktop and mobile.

Store

Where users browse categories and packs, preview assets, and get the ones they want.

User Account

Where a user sees the assets they own — their library — and downloads them.

Admin Dashboard

Where the admin adds, edits and manages all assets, categories, tools and users.

The website must work well on both desktop and mobile — every screen in this spec is built responsive-first.

02 · The Assets

What we sell

Everything is organized into packs — a group of files sold together under one title and price — spread across 9 categories.

Category 9, Tools, is different from the rest. It is not a file to download — it unlocks the Tools section inside the website, with web utilities grouped by category.

03 · Users

Roles & permissions

Three roles, each with a wider slice of the platform.

Visitor

Browse the store and see previews. Must create an account to get assets.

User

Get assets, see their owned assets, download them, access the Tools section.

Admin

Manage everything from the dashboard: assets, packs, categories, users.

Capability Visitor User Admin
Browse store & see previews
Create an account / log in
Get packs
My Assets library & downloads
Access the Tools section
Manage packs / categories / tools / users

04 · Technologies

Tech stack

The frontend talks to the backend through an API — the backend sends and receives data in JSON. The backend reads and writes data in MongoDB.

Frontend

React

JavaScript or TypeScript — what the user sees.

Backend

Node.js + Express

Server logic and the REST API.

Database

MongoDB

Stores users, categories, packs and tools.

Styling

CSS / UI library

e.g. Tailwind CSS — free choice.

File storage

Server / storage folder

Serves original files only to owners.

How it connects

React → JSON API → Express MongoDB

05 · Functionalities

What to build

Grouped by area of the platform. Switch tabs to see each checklist.

  • Home page — featured packs and the list of categories.
  • Category page — all packs within one category.
  • Search & filter — search packs by name, filter by category.
  • Pack detail page — title, description, previews, file list and a get button.
  • Previews — thumbnail / short clip only, never the full original file.
  • Responsive — works on mobile and desktop.
Live search & filter preview uses data.json

06 · Data Model

MongoDB collections

The four main collections the intern will create, with an example document for each.

users

{ id, name, email,
  password (hashed),
  role: "user" | "admin",
  ownedPacks: [packId],
  createdAt }

categories

{ id, name,
  type: "download" | "tools" }

packs

{ id, title, categoryId,
  description, price,
  previewFiles: [ ... ],
  originalFiles: [ ... ],
  published: true/false,
  createdAt }

tools

{ id, name, description,
  categoryId, link }

A ready-to-seed sample dataset matching this exact shape lives in data.json — use it to seed MongoDB locally while building the API.

07 · Important Rules

Non-negotiables

Five rules that apply across the whole platform, no exceptions.

Passwords are always hashed

Never stored as plain text — hash before saving to MongoDB.

Original files require ownership

Only users who own a pack can download its original files. A visitor never can.

Previews are the only public files

Small / short versions only — the store never exposes full originals.

Responsive, always

Every screen must work on both phone and computer.

Admin is protected

The admin section opens only for an authenticated admin.

08 · Summary

What to deliver

Six deliverables, plus the end-to-end flow they need to support.

  1. 1
    A React frontend — store, user account and admin dashboard — responsive.
  2. 2
    A Node.js backend with an API.
  3. 3
    A MongoDB database with the four collections above.
  4. 4
    A working flow: register → get a pack → it appears in the library → download.
  5. 5
    An admin dashboard to manage packs, categories, users and tools.
  6. 6
    A Tools section, grouped by category, for users with access.
Create account
Get a pack
Appears in library
Download files