Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Fireinthebellyy/ftb-web/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Content Management section of the admin panel allows you to moderate user-submitted content, manage user accounts, control the toolkit catalog, and publish Ungatekeep posts.

Opportunities Management

What are Opportunities?

Opportunities are user-submitted events like hackathons, grants, competitions, and ideathons. New opportunities require admin approval before appearing on the platform.

Pending Opportunities Tab

The Pending Opportunities tab shows all opportunities awaiting admin review.

Opportunity Information Displayed

Basic Info

  • Title and description
  • Location
  • Opportunity type (hackathon, grant, competition, ideathon)

Metadata

  • Start and end dates
  • Posted by (user name and role)
  • Created date

Approving Opportunities

When you approve an opportunity:
1

Review the Details

Check the title, description, dates, and organizer information for accuracy
2

Click Approve

Click the green Approve button with checkmark icon
3

Opportunity Goes Live

The opportunity is marked as isVerified: true and isActive: true, making it visible to all users

Rejecting Opportunities

To reject an opportunity that doesn’t meet guidelines:
1

Review the Content

Identify issues like spam, inappropriate content, or misleading information
2

Click Reject

Click the red Reject button with X icon
3

Opportunity Hidden

The opportunity is marked as isActive: false and removed from pending queue
Rejected opportunities are not deleted from the database, but they become inactive and won’t appear in user feeds. Consider communicating rejection reasons to users via other channels.

API Endpoint

PATCH /api/admin/opportunities/[id]
# Body: { "action": "approve" | "reject" }

User Management

User Management Tab

The User Management tab displays all registered users and allows role assignment.

User Information Displayed

  • Profile: Name, avatar, email address
  • Role: Current role badge (user, member, admin)
  • Status: Email verification status
  • Joined Date: Account creation date

Managing User Roles

You can change any user’s role using the dropdown in the Actions column.

User → Member

Grant enhanced permissions for trusted community members

Member → Admin

Promote to full admin access for platform management

Admin → User

Demote admins or members back to regular user role

Changing a User’s Role

1

Locate the User

Use the search bar to filter users by name
2

Select New Role

Open the dropdown in the Actions column and select the new role
3

Confirm Change

The role updates immediately and the user’s permissions change on next page load
You cannot change your own role. The role dropdown is disabled for the currently logged-in admin to prevent accidental self-demotion.

API Endpoint

PATCH /api/admin/users/[id]
# Body: { "role": "user" | "member" | "admin" }

Toolkit Management

Toolkit Management Tab

The Toolkit Management tab lets you create, edit, and manage paid educational toolkits.

Toolkit Information Displayed

Catalog Info

  • Title and description
  • Category (Career, Skills, etc.)
  • Price and original price (for discounts)
  • Lesson count

Status Controls

  • Active/Inactive toggle
  • Sale badge toggle
  • Published status

Creating a New Toolkit

1

Click Create Toolkit

Click the Create Toolkit button in the top right
2

Fill in Details

Enter title, description, price, category, and highlights
3

Add Media

Upload cover image URL and optional promo video URL
4

Save Toolkit

Click Create to add the toolkit to the catalog

Managing Toolkit Content

Each toolkit can contain multiple lessons (content items):
  1. Click the folder icon in the Actions column
  2. The Content Manager dialog opens
  3. Add Article or Video content items
  4. Set the order using the orderIndex field
  5. Each item has a title, type, and content (HTML for articles, Bunny CDN URL for videos)
Toolkit content items are stored in the toolkit_content_items table and linked to toolkits via toolkitId.

Activating/Deactivating Toolkits

  • Active Toggle: Controls whether the toolkit appears in the marketplace
  • Sale Badge Toggle: Shows/hides a “Sale” badge on the toolkit card

Editing a Toolkit

1

Click Edit Icon

Click the Edit button (pencil icon) in the Actions column
2

Modify Fields

Update title, description, price, highlights, or other fields
3

Save Changes

Click Update Toolkit to save changes

Deleting a Toolkit

Deleting a toolkit is permanent and will remove all associated content items. Users who have purchased the toolkit will lose access.
1

Click Delete Icon

Click the trash icon in the Actions column
2

Confirm Deletion

Confirm the deletion in the browser prompt
3

Toolkit Removed

The toolkit and all its content are permanently deleted

API Endpoints

# Get all toolkits
GET /api/admin/toolkits

# Create a toolkit
POST /api/admin/toolkits

# Update a toolkit
PUT /api/admin/toolkits/[id]

# Delete a toolkit
DELETE /api/admin/toolkits/[id]

# Get toolkit content items
GET /api/admin/toolkits/[id]/content

# Manage content items
POST /api/admin/toolkit-content-items
PATCH /api/admin/toolkit-content-items/[id]
DELETE /api/admin/toolkit-content-items/[id]

Ungatekeep Posts

Ungatekeep Tab

The Ungatekeep section manages broadcast posts for announcements, resources, and company experiences.

Post Types

Announcements

Platform updates, events, and important notices

Company Experience

User stories about interviews, internships, and work culture

Resources

Helpful guides, templates, and learning materials

Creating an Ungatekeep Post

1

Click Create Post

Click the Create Post button
2

Enter Content

Add title, content (Markdown supported), and select a tag
3

Add Media (Optional)

Upload images or add link previews (URL, title, image)
4

Set Publishing Options

Toggle Published to make it live, or save as draft Toggle Pinned to feature the post at the top
5

Save Post

Click Create to publish or save as draft

Post Controls

Published Toggle

  • ON: Post is visible to all users in the Ungatekeep feed
  • OFF: Post is saved as a draft and not visible publicly

Pinned Toggle

  • ON: Post appears at the top of the feed
  • OFF: Post appears in chronological order

Editing Posts

1

Click Edit Icon

Click the edit button in the Actions column
2

Modify Content

Update title, content, tag, images, or link preview
3

Save Changes

Click Update to save changes

Deleting Posts

Deleting an Ungatekeep post is permanent. Users will no longer see the post in the feed.
1

Click Delete Icon

Click the trash icon in the Actions column
2

Confirm Deletion

Confirm the deletion in the browser prompt
3

Post Removed

The post is permanently deleted from the database

API Endpoints

# Get all posts
GET /api/admin/ungatekeep

# Create a post
POST /api/admin/ungatekeep

# Update a post
PUT /api/admin/ungatekeep/[id]

# Delete a post
DELETE /api/admin/ungatekeep/[id]

Search and Filtering

All admin tables include search functionality:
  • Users: Search by name
  • Opportunities: Search by title
  • Toolkits: Search by title
  • Ungatekeep: Search by title
  • Coupons: Search by code (covered in Coupon System)

Source Code Locations

# Admin table components
app/admin/AdminUsersTable.tsx
app/admin/AdminOpportunitiesTable.tsx
app/admin/AdminToolkitsTable.tsx
app/admin/AdminUngatekeepTable.tsx

# API routes
app/api/admin/users/
app/api/admin/opportunities/
app/api/admin/toolkits/
app/api/admin/ungatekeep/

# Database schema
lib/schema.ts

Build docs developers (and LLMs) love