Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Web-based font manager for AdvancedKillFeed killfeeds, built with Next.js, Prisma, NextAuth (Discord) and Tailwind CSS.

License

Notifications You must be signed in to change notification settings

educatalan02/advancedkillfeed-platform

Repository files navigation

AdvancedKillFeed Font Manager

Custom Fonts for AdvancedKillFeed – create, upload and edit custom fonts for your Unturned killfeeds.

This project is a web-based font manager/editor for the AdvancedKillFeed plugin.
It focuses on the web dashboard: users can sign in with Discord, create and manage their fonts, and see them in a live preview and in a community fonts grid.
It is part of the RedstonePlugins ecosystem.

Status: Work in progress / not actively maintained.
Published as a portfolio project.


✨ Features

  • πŸ” Discord OAuth login using NextAuth (Discord provider)
  • 🧩 Font management dashboard
    • Create new fonts
    • Edit font metadata (name, sample text, author, visibility, etc.)
    • Track glyph count per font
  • πŸ–ΌοΈ Live preview
    • Sample text preview using the selected font
    • Killfeed-style header so users can see how it might look ingame
  • 🌍 Community Fonts section
    • Grid of community fonts with search input
    • Font cards showing name, glyph count, author and creation date
  • 🎨 Modern UI with Tailwind CSS
    • Dark theme
    • Responsive layout
  • πŸ§ͺ Glyph manager (WIP)
    • UI prepared to manage glyphs of a font directly from the browser

Note: The current implementation covers the web font manager/editor.
Export and direct integration with the AdvancedKillFeed plugin were planned as a later phase and are not implemented yet.


πŸ—οΈ Tech Stack

  • Framework: Next.js 13+ (React, App Router)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • Auth: NextAuth.js with Discord provider
  • Database/ORM: Prisma
  • Runtime / Target: Node.js (Vercel / custom VPS)

πŸ“¦ Next.js setup

This project is built with Next.js 13+ using:

  • The App Router under src/app for all pages and layouts.
  • Classic Pages API routes under src/pages/api for NextAuth and font endpoints.

The project was originally created with create-next-app and then adapted to use:

  • TypeScript
  • Tailwind CSS
  • Prisma
  • NextAuth (Discord provider)

πŸ“‚ Project Structure

.
β”œβ”€ prisma/
β”‚ └─ schema.prisma # Database schema and Prisma models
β”œβ”€ public/
β”‚ └─ ... # Static assets (icons, images, etc.)
└─ src/
 β”œβ”€ app/ # Next.js App Router (main UI)
 β”‚ β”œβ”€ fonts/
 β”‚ β”‚ β”œβ”€ [id]/ # Font detail page (view/manage a single font)
 β”‚ β”‚ └─ new/ # Create new font flow
 β”‚ β”œβ”€ favicon.ico
 β”‚ β”œβ”€ globals.css # Global Tailwind styles
 β”‚ β”œβ”€ layout.tsx # Root layout (theme, providers, etc.)
 β”‚ β”œβ”€ page.tsx # Landing page (hero, community fonts)
 β”‚ └─ providers.tsx # Global providers (theme, auth, etc.)
 β”‚
 β”œβ”€ components/
 β”‚ β”œβ”€ Button.tsx # Reusable button component
 β”‚ β”œβ”€ Card.tsx # Generic card used across the UI
 β”‚ β”œβ”€ ClientLayout.tsx # Layout wrapper for client-side sections
 β”‚ β”œβ”€ FontCard.tsx # Card used in the Community Fonts grid
 β”‚ β”œβ”€ Footer.tsx
 β”‚ β”œβ”€ GlyphManager.tsx # (WIP) UI to manage glyphs of a font
 β”‚ β”œβ”€ Logo.tsx
 β”‚ β”œβ”€ Navbar.tsx
 β”‚ β”œβ”€ Navigation.tsx
 β”‚ β”œβ”€ PageContainer.tsx # Shared page layout container
 β”‚ β”œβ”€ SectionHeading.tsx # Section titles/subtitles
 β”‚ β”œβ”€ SignInButton.tsx # "Sign in with Discord" button
 β”‚ β”œβ”€ ThemeToggle.tsx # Light/Dark theme switch
 β”‚ └─ UserMenu.tsx # User dropdown when logged in
 β”‚
 β”œβ”€ config/
 β”‚ └─ next-auth.ts # NextAuth configuration (Discord provider)
 β”‚
 β”œβ”€ context/
 β”‚ └─ AuthContext.tsx # Auth context to expose user/session across the app
 β”‚
 β”œβ”€ hooks/
 β”‚ └─ useFonts.ts # Custom hook to fetch and manage fonts data
 β”‚
 β”œβ”€ lib/
 β”‚ └─ ... # Utilities / shared logic (e.g. Prisma client)
 β”‚
 └─ pages/
 └─ api/
 β”œβ”€ auth/
 β”‚ └─ [...nextauth].ts # NextAuth API route
 └─ fonts/
 └─ [id]/... # REST-like API for fonts (CRUD, WIP)

🧠 Implementation details

  • Uses Next.js App Router for the UI and Pages API routes for authentication and font endpoints.
  • Authentication is handled via NextAuth with a Discord provider, configured in src/config/next-auth.ts and exposed through src/pages/api/auth/[...nextauth].ts.
  • Global authentication state is shared through AuthContext, so components like Navbar, UserMenu and SignInButton can react to the current user.
  • Font data is accessed using the custom hook useFonts, which centralises fetching, caching and mutations for fonts.
  • UI is built from reusable React components (FontCard, GlyphManager, PageContainer, SectionHeading, etc.) and styled with Tailwind CSS.

πŸ“Έ Screenshots / Showcase

All screenshots are stored under docs/screenshots/.

Landing page (logged out)

Landing page (logged out)

Landing page (logged in, with actions)

Landing page (logged in)

Fonts listing / All Fonts

All Fonts

New Font – upload images

New Font

Font detail – preview & glyph grid

Font Detail

Glyph details modal

Glyph Details

Add New Glyph modal

Add New Glyph


πŸ“‹ Requirements

  • Node.js 18+
  • npm / pnpm / yarn
  • A PostgreSQL (or compatible) database for Prisma

πŸš€ Getting Started

 git clone https://github.com/educatalan02/advancedkillfeed-platform.git
cd advanced-killfeed-font-manager
pnpm install 

Create a .env file with your configuration:

DATABASE_URL="postgresql://user:password@localhost:5432/akf-fonts"
NEXTAUTH_SECRET="your-random-secret"
NEXTAUTH_URL="http://localhost:3000"
DISCORD_CLIENT_ID="your-discord-client-id"
DISCORD_CLIENT_SECRET="your-discord-client-secret"

πŸ“‹ Roadmap / Original idea

  • User authentication with Discord OAuth
  • Font management dashboard (list, create, edit fonts)
  • Live preview of fonts with sample text and killfeed header
  • Community Fonts section with search/filter
  • Responsive UI with Tailwind CSS
  • Glyph manager UI (WIP)
  • Database schema and Prisma models for users, fonts, glyphs
  • NextAuth.js setup with Discord provider
  • Finish glyph editor UI
  • Implement font import/export format
  • Expose API endpoints for the AdvancedKillFeed plugin
  • Admin tools and moderation for public/community fonts
  • Improve documentation and add more examples

πŸ§‘β€πŸ’» Author

Built by Eduardo CatalΓ‘n (@educatalan02)
Part of the RedstonePlugins ecosystem and the AdvancedKillFeed project.

πŸ“ License

This project is licensed under the MIT License.

About

Web-based font manager for AdvancedKillFeed killfeeds, built with Next.js, Prisma, NextAuth (Discord) and Tailwind CSS.

Topics

Resources

License

Stars

Watchers

Forks

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /