Skip to content

Termageddon is a glossary management system designed for large teams

Notifications You must be signed in to change notification settings

wolfe/termageddon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

165 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Termageddon

A production-ready full-stack glossary management system with Django REST Framework backend and Angular 17 frontend, featuring GitHub-style approval workflows and perspective-based organization.

๐Ÿš€ Quick Start

Option 1: Demo Script (Recommended)

Launch the complete application with one command:

./demo.sh

This will:

  • Reset and populate the database with 360 test entries
  • Start the Django backend server
  • Start the Angular frontend server
  • Open Chrome with both the admin interface and frontend app

Login: admin / admin or mariacarter / ImABird

Option 2: Manual Setup

Backend Setup (2 minutes)

# Navigate to backend directory
cd backend

# Ensure you're using the correct Python via pyenv
# (from repo root you can run: pyenv local <your-python-3.13.x-version>)
pip install -r requirements.txt

# Database and test data are already loaded!
# Just start the server:
python manage.py runserver

โœ… Backend is now running at: http://localhost:8000

Frontend Setup (2 minutes)

Open a new terminal:

# Navigate to frontend directory
cd frontend

# Dependencies are already installed!
# Just start the development server:
npm start

โœ… Frontend is now running at: http://localhost:4200

๐ŸŽฏ What You Can Do

โœ… Currently Working

  • Authentication: Token-based login/logout
  • Browse Glossary: 360 pre-loaded entries across 9 perspectives
  • Search: Real-time search by term name
  • Filter: Perspective dropdown filter
  • Rich Text Editing: TinyMCE WYSIWYG editor with custom link types
  • GitHub-Style Workflow: Request reviewers, edit during approval, publish actions
  • Review Dashboard: Approve drafts, view replaces section, publish approved drafts
  • My Drafts: Personal draft management and review progress tracking
  • Comment System: Threaded discussions with resolve functionality
  • Draft History: Timeline view of all changes
  • Term Creation: Add new terms with perspective selection
  • Internal Linking: Link between glossary entries
  • View Definitions: HTML-formatted definitions with approval status
  • Approver Info: Visual display of who approved each definition
  • Admin Interface: Full CRUD with custom actions
  • API: Complete REST API with pagination and filtering

๐Ÿ“‹ Project Status

โœ… COMPLETED - Production-Ready Full-Stack Application

Backend (Django REST API) - 100% COMPLETE โœ…

  • Django 5.1.4 with Django REST Framework 3.16.0
  • 7 Data Models with soft delete and audit fields
  • 72/72 Tests Passing โœ… (90%+ coverage)
  • Complete REST API with authentication, CRUD, and workflows
  • GitHub-Style Approval Workflow with reviewer selection
  • Comment System with threading and resolve functionality
  • Admin Interface with custom actions and bulk operations
  • Test Data - 360 entries loaded from CSV

Frontend (Angular 17) - COMPLETE โœ…

  • Angular 17 with standalone components
  • TinyMCE Rich Text Editor with custom link types
  • GitHub-Style Review Workflow components
  • Comment System with threaded replies
  • Draft History and term creation dialogs
  • Tailwind CSS with Termageddon branding
  • E2E Testing with Playwright
  • Complete Workflow - browse, edit, review, publish

Key Features Implemented

  • Soft Delete: All models support soft delete
  • Approval Workflow: 2 approvals required, authors can't approve own drafts
  • Perspective Curators: Users can endorse entries as "official"
  • Comment Threading: Backend supports threaded comments
  • Rich Text Editing: Professional WYSIWYG with custom tools
  • Internal Linking: Link between glossary entries
  • Version History: Timeline view of all changes
  • Term Creation: Add new terms with perspective selection

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Angular 17 Frontend               โ”‚
โ”‚   โ€ข Login & Authentication          โ”‚
โ”‚   โ€ข Term Browser with Search        โ”‚
โ”‚   โ€ข Rich Text Editor (TinyMCE)        โ”‚
โ”‚   โ€ข Review Dashboard                โ”‚
โ”‚   โ€ข Comment System                  โ”‚
โ”‚   โ€ข Version History                 โ”‚
โ”‚   โ€ข Termageddon Brand Styling       โ”‚
โ”‚   โ€ข Tailwind CSS                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚ REST API + Token Auth
               โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Django REST Framework Backend     โ”‚
โ”‚   โ€ข 7 Models with Soft Delete       โ”‚
โ”‚   โ€ข GitHub-Style Approval Workflow  โ”‚
โ”‚   โ€ข Reviewer Selection              โ”‚
โ”‚   โ€ข Publish Actions                 โ”‚
โ”‚   โ€ข Perspective Curator System     โ”‚
โ”‚   โ€ข Comprehensive Admin Interface   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚
               โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   SQLite Database                   โ”‚
โ”‚   โ€ข 360 Glossary Entries            โ”‚
โ”‚   โ€ข 10 Test Users                   โ”‚
โ”‚   โ€ข 9 Perspectives                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ” Test Credentials

  • Admin: admin / admin
  • Test Users (password = ImABird):
    • mariacarter (Maria Carter) - Perspective Curator: Physics, Chemistry
    • bencarter (Ben Carter) - Perspective Curator: Chemistry, Biology
    • leoschmidt (Leo Schmidt) - Perspective Curator: Biology, Geology
    • kenjitanaka (Kenji Tanaka) - Perspective Curator: Physics, Geology
    • sofiarossi (Sofia Rossi) - Perspective Curator: Computer Science, Graph Theory
    • aishakhan (Aisha Khan) - Regular User
    • samuelgreene (Samuel Greene) - Regular User
    • ivanpetrov (Ivan Petrov) - Regular User
    • chloedubois (Chloe Dubois) - Regular User
    • evelynreed (Evelyn Reed) - Regular User (not a test user, but uses same password)

๐Ÿ“Š Test Data

The application includes:

  • 360 glossary entries (Physics, Chemistry, Biology, Computer Science, etc.)
  • 10 test users with various permissions
  • 9 perspectives with assigned curators
  • Pre-approved definitions (2 approvals each)

๐Ÿงช Testing

Backend Tests (72/72 passing โœ…)

cd backend
pip install -r requirements.txt
pytest -v

Frontend Tests

cd frontend
npm test

E2E Tests

./run-tests.sh --e2e

๐Ÿ› ๏ธ Technology Stack

Backend

  • Python 3.13
  • Django 5.1.4
  • Django REST Framework 3.16.0
  • SQLite
  • pytest + factory-boy

Frontend

  • Node.js 18+
  • Angular 17
  • TypeScript 5.x
  • Tailwind CSS 3.x
  • TinyMCE 6.x
  • Playwright (E2E testing)

๐Ÿ“š Documentation

๐Ÿ”ฎ Future Enhancements

See TODO.md for detailed roadmap including:

  • Advanced search and filtering
  • Bulk operations
  • Export functionality
  • Notification system
  • Analytics and reporting
  • Mobile PWA version

๐Ÿ“ License

This project is for educational purposes.

๐Ÿ™ Acknowledgments

Built following Django and Angular best practices with Termageddon brand guidelines.


Ready to explore? Run ./demo.sh and start browsing! ๐Ÿš€

About

Termageddon is a glossary management system designed for large teams

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published