A comprehensive web application for browsing, searching, and comparing project management standards including PMBOK 7, PRINCE2, ISO 21500, ISO 21502, and The Standard for Project Management. Features a modern Reddit-inspired interface with advanced search capabilities, bookmarking, pagination, and detailed content analysis.
PM/
โโโ backend/ # Node.js + Express API
โ โโโ src/
โ โ โโโ index.ts # Main server file with comprehensive API endpoints
โ โ โโโ scripts/ # Data upload scripts for all standards
โ โ โโโ upload-pmbok.ts
โ โ โโโ upload-iso21500.ts
โ โ โโโ upload-iso21502.ts
โ โ โโโ uploadPRINCE2Sections.ts
โ โ โโโ upload-standard-pm.ts
โ โโโ prisma/
โ โ โโโ schema.prisma # Main database schema (with vector support)
โ โ โโโ schema_no_ai.prisma # Simplified schema without AI features
โ โ โโโ seed.ts # Database seeding
โ โโโ package.json
โโโ frontend/ # React + TypeScript frontend
โ โโโ src/
โ โ โโโ components/ # React components
โ โ โ โโโ Dashboard.tsx
โ โ โ โโโ StandardReaderView.tsx
โ โ โ โโโ SearchResults.tsx
โ โ โ โโโ InsightsDashboard.tsx
โ โ โ โโโ LandingPage.tsx
โ โ โ โโโ SectionDetail.tsx
โ โ โ โโโ BookmarksPage.tsx
โ โ โ โโโ ComparisonView.tsx
โ โ โ โโโ TutorialPage.tsx
โ โ โ โโโ ui/ # UI components
โ โ โโโ services/ # API service layer
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ App.tsx # Main app component with routing
โ โโโ package.json
โโโ data/ # Standards data files (JSON format)
โ โโโ GUIDE TO THE PROJECT MANAGEMENT BODY OF KNOWLEDGE (PMBOKยฎ GUIDE).json
โ โโโ PRINCE2.json
โ โโโ ISO 21500-2021_ Project, programme and portfolio management - Context and concepts.json
โ โโโ ISO 21502-2020_ Project, programme and portfolio management - Guidance on project management.json
โ โโโ THE STANDARD FOR PROJECT MANAGEMENT.json
โโโ README.md
- Standards Library: Browse comprehensive project management standards (PMBOK 7, PRINCE2, ISO 21500, ISO 21502, Standard for Project Management)
- Advanced Search: Full-text search across all standards with intelligent filtering and similarity scoring
- Bookmarking System: Save and manage favorite sections with persistent storage
- Paginated Results: Clean, organized search results with pagination (4 sections per page)
- Interactive UI: Modern Reddit-inspired React frontend with responsive design
- Deep Linking: Direct links to specific sections within standards
- Statistics Dashboard: Overview of standards coverage and content analysis
- Tutorial System: Guided walkthrough for new users
- Tailored Process Generator: Generate scenario-specific project processes with evidence-based citations to standard sections
- Visual Topic Map (New): Interactive graph linking topics โ sections โ standards with deep links
- Reddit-style Interface: Familiar navigation and layout patterns
- Smart Search: Google-like search results with snippets and highlighting
- Section Navigation: Previous/Next navigation between sections
- Table of Contents: Hierarchical navigation within standards
- Responsive Design: Works seamlessly on desktop and mobile devices
- Loading States: Smooth user experience with loading indicators, including an overlay spinner during tailored process generation
- Database: PostgreSQL with optimized queries and vector support
- API: Comprehensive RESTful endpoints for standards, search, insights, and navigation
- Performance: Efficient pagination, search algorithms, and similarity scoring
- Data Processing: Automated upload scripts for all project management standards
- AI Optionality: Optional AI summarization via Gemini for insights and standard summaries (falls back to heuristic logic)
- Framework: React 19 with TypeScript and modern hooks
- Styling: Custom CSS with Reddit-inspired design system
- Routing: React Router v7 for comprehensive navigation
- State Management: React hooks with localStorage persistence
- UI Components: Custom components with Radix UI integration
- Search: Advanced search with real-time filtering and highlighting
- Bookmarking: Persistent bookmark system with local storage
Before running the application, ensure you have:
- Node.js (v18 or higher)
- PostgreSQL (v12 or higher)
# Backend dependencies
cd backend
npm install
# Frontend dependencies
cd ../frontend
npm install- Create a PostgreSQL database for the application
- Enable pgvector extension (required for semantic search):
Or run the provided migration file:
-- Run this on your PostgreSQL database CREATE EXTENSION IF NOT EXISTS vector;psql $DATABASE_URL -f backend/migrations/enable_pgvector.sql - Update the
DATABASE_URLinbackend/.env:
DATABASE_URL="postgresql://username:password@localhost:5432/pm_standards_db?schema=public"
# Required for AI features and semantic search
GEMINI_API_KEY="your_google_generative_ai_key"cd backend
# Generate Prisma client
npm run db:generate
# Run database migrations
npm run db:migrate
# Seed the database with standards data
npm run db:seedIf you have standards data files in the data/ directory, you can upload them:
cd backend
# Upload PMBOK Guide
npm run upload:pmbok
# Upload ISO 21500
npm run upload:iso21500
# Upload ISO 21502
npm run upload:iso21502
# Upload PRINCE2
npm run upload:prince2
# Upload Standard for Project Management
npm run upload:standard-pmTo enable semantic search capabilities, generate embeddings for all sections:
cd backend
# Generate embeddings for all sections (requires GEMINI_API_KEY)
npm run embeddings:compute
# Reset embeddings if needed
npm run embeddings:resetNote: This process may take several minutes depending on the number of sections. The script includes rate limiting and retry logic to handle API limits gracefully.
# Terminal 1: Start the backend server
cd backend
npm run dev
# Terminal 2: Start the frontend development server
cd frontend
npm run devThe application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
GET /api/standards- List all standards with metadataGET /api/standards/:id- Get standard details with paginated sectionsPOST /api/standards/:id/search- Search within a specific standard with Google-like results
GET /api/sections/:id- Get individual section detailsGET /api/sections/:id/adjacent- Get previous/next sections for navigation
GET /api/search- Global search across all standards with filtering (keyword-based)GET /api/search/semantic- Semantic search using vector embeddings (requires embeddings)GET /api/compare- Compare sections across standards by topicGET /api/insights- Get comprehensive statistics about standards coverageGET /api/graph- Topic โ Section โ Standard graph data for visualization
POST /api/process/generate- Generate a tailored project process for a given scenario- Request body:
{ "projectName": "ERP rollout", "scenarioId": "it" | "construction" | "research", "lifecycle": "predictive" | "agile" | "hybrid", "constraints": ["fixed scope", "regulatory approvals"], "drivers": ["Compliance", "Time-to-market"] } - Response: summary plus phases -> activities with evidence citations to standards sections
- Request body:
GET /api/health- Health check endpoint
- LandingPage: Welcome screen with feature overview and navigation
- Dashboard: Standards library with search and filtering capabilities
- TutorialPage: Guided walkthrough for new users
- StandardReaderView: Full-text display with pagination, search, and bookmarking
- SectionDetail: Individual section view with navigation and bookmarking
- SearchResults: Advanced search results with pagination and filtering
- InsightsDashboard: Comprehensive statistics and topic analysis
- ComparisonView: Side-by-side comparison of standards sections
- BookmarksPage: Manage saved sections and favorites
- ProcessGenerator: Form-driven generator producing a tailored process with deep links; includes a visible loading overlay while generating
- TopicMap: SVG-based interactive network of topics, sections, and standards
Explore how common topics connect to specific sections across all standards.
- Start both backend and frontend (see Setup Instructions).
- Open the frontend and navigate to
Topic Mapfrom the sidebar or go to/map. - Hover nodes to highlight related items. Click a section node to open the section, or a standard node to open its library view.
GET /api/graph?topicLimit=8§ionsPerTopic=12- Returns nodes and edges for topics, sections and standards. Use parameters to control density.
- Reddit-style Sidebar: Consistent navigation across all pages
- Breadcrumb Navigation: Clear path indication
- Previous/Next Controls: Seamless section navigation
- Table of Contents: Hierarchical content organization
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run db:generate # Generate Prisma client
npm run db:migrate # Run database migrations
npm run db:seed # Seed database with standards data
npm run db:reset # Reset database
npm run upload:pmbok # Upload PMBOK Guide data
npm run upload:iso21500 # Upload ISO 21500 data
npm run upload:iso21502 # Upload ISO 21502 data
npm run upload:prince2 # Upload PRINCE2 data
npm run upload:standard-pm # Upload Standard for Project Management data
npm run embeddings:compute # Generate embeddings for semantic search
npm run embeddings:reset # Reset all embeddingsnpm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintThe data/ directory contains JSON files with standards content:
- GUIDE TO THE PROJECT MANAGEMENT BODY OF KNOWLEDGE (PMBOKยฎ GUIDE).json: Complete PMBOK 7th Edition content
- PRINCE2.json: PRINCE2 methodology sections and processes
- ISO 21500-2021_ Project, programme and portfolio management - Context and concepts.json: ISO 21500:2021 standard content
- ISO 21502-2020_ Project, programme and portfolio management - Guidance on project management.json: ISO 21502:2020 standard content
- THE STANDARD FOR PROJECT MANAGEMENT.json: PMI's Standard for Project Management content
These files are processed by dedicated upload scripts to populate the database with structured content, including word counts, section metadata, and hierarchical organization.
Standard: Project management standards with metadata (PMBOK 7, PRINCE2, ISO 21500, ISO 21502, Standard for Project Management)Chapter: Organizational chapters within standardsSection: Individual sections with content, word counts, sentence counts, and metadata
- Optimized Queries: Fast search, pagination, and similarity scoring
- Content Analysis: Word counts, sentence counts, and section statistics
- Hierarchical Structure: Standards โ Chapters โ Sections
- Unique Constraints: Ensures data integrity with proper indexing
- Full-text search across all standards with intelligent filtering
- Advanced filtering by standard type, ID, and content relevance
- Result grouping by standard with metadata
- Smart pagination for large result sets with performance optimization
- Similarity scoring for relevance ranking
- Google-like search results with highlighted snippets
- Similarity scoring based on title and content matching
- Chapter context for better understanding and navigation
- Real-time search with instant results and filtering
- 4 sections per page for clean organization and performance
- Independent pagination for each standard in search results
- Navigation controls with Previous/Next and numbered pages
- Section counters showing "X of Y sections" for clear context
- Adjacent section navigation for seamless reading experience
-
Build the frontend:
cd frontend npm run build -
Set up production database with proper indexing
-
Configure environment variables for production
-
Deploy backend to your preferred hosting platform
-
Set up reverse proxy for frontend static files
- Efficient Pagination: Only loads necessary data with smart query optimization
- Optimized Queries: Fast search across large datasets with proper indexing
- Smart Caching: Reduced database load with intelligent result caching
- Responsive Design: Works seamlessly on all device sizes and screen resolutions
- Similarity Scoring: Intelligent relevance ranking for search results
- Lazy Loading: Components and data loaded on demand for better performance
- Node.js: Runtime environment
- Express.js: Web framework
- TypeScript: Type-safe development
- Prisma: Database ORM with PostgreSQL
- PostgreSQL: Primary database
- CORS: Cross-origin resource sharing
- React 19: Modern React with latest features
- TypeScript: Type-safe development
- Vite: Fast build tool and development server
- React Router v7: Client-side routing
- Axios: HTTP client for API communication
- React Icons: Comprehensive icon library
- Radix UI: Accessible component primitives
- Bootstrap 5: CSS framework for responsive design
- Loading Overlay: Custom SVG spinner overlay for long-running operations
- ESLint: Code linting and formatting
- Nodemon: Development server with auto-restart
- ts-node: TypeScript execution for Node.js
- Prisma Migrate: Database schema management
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests if applicable
- Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Database connection issues: Verify your DATABASE_URL configuration in
backend/.env - Frontend build errors: Ensure all dependencies are installed with
npm install - Search not working: Check that the database is properly seeded with standards data
- Pagination issues: Verify that sections are properly indexed in the database
- Vector search errors: Ensure PostgreSQL has the vector extension installed
- Check the console logs for detailed error messages
- Verify all prerequisites are installed (Node.js v18+, PostgreSQL v12+)
- Ensure the database is properly configured and seeded
- Check that both backend and frontend servers are running
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the troubleshooting section above
- Review the project documentation
- Ensure all setup steps have been completed correctly
PMInsight - Built with โค๏ธ using React 19, TypeScript, Node.js, Express, PostgreSQL, Prisma, and modern web technologies