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.
Launch the complete application with one command:
./demo.shThis 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
# 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
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
- 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
- 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
- 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
- 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
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 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 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Admin:
admin/admin - Test Users (password = ImABird):
mariacarter(Maria Carter) - Perspective Curator: Physics, Chemistrybencarter(Ben Carter) - Perspective Curator: Chemistry, Biologyleoschmidt(Leo Schmidt) - Perspective Curator: Biology, Geologykenjitanaka(Kenji Tanaka) - Perspective Curator: Physics, Geologysofiarossi(Sofia Rossi) - Perspective Curator: Computer Science, Graph Theoryaishakhan(Aisha Khan) - Regular Usersamuelgreene(Samuel Greene) - Regular Userivanpetrov(Ivan Petrov) - Regular Userchloedubois(Chloe Dubois) - Regular Userevelynreed(Evelyn Reed) - Regular User (not a test user, but uses same password)
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)
cd backend
pip install -r requirements.txt
pytest -vcd frontend
npm test./run-tests.sh --e2e- Python 3.13
- Django 5.1.4
- Django REST Framework 3.16.0
- SQLite
- pytest + factory-boy
- Node.js 18+
- Angular 17
- TypeScript 5.x
- Tailwind CSS 3.x
- TinyMCE 6.x
- Playwright (E2E testing)
- API_DOCUMENTATION.md - Complete API reference
- USER_GUIDE.md - Comprehensive user guide
- TODO.md - Future enhancements and roadmap
See TODO.md for detailed roadmap including:
- Advanced search and filtering
- Bulk operations
- Export functionality
- Notification system
- Analytics and reporting
- Mobile PWA version
This project is for educational purposes.
Built following Django and Angular best practices with Termageddon brand guidelines.
Ready to explore? Run ./demo.sh and start browsing! ๐