- Install Python (if not already installed)
- Install Neo4j
- Install Vue.js and Vue CLI
- Set up a virtual environment for Python
- Install required Python packages:
- Flask
- neo4j-driver
- PyPDF2 (or a similar PDF processing library)
- numpy (for vector operations)
- Install required Node.js packages for Vue.js:
- axios (for API calls)
- cytoscape (for graph visualization)
- Define node labels: Section, KeyTerm, Concept, Media, Page
- Define relationship types: RELATED_TO, APPEARS_ON, etc.
- Set up indexes for optimized query performance
- Create a new Python file:
app.py
- Set up Flask application
- Implement Neo4j driver connection
- Implement PDF parsing functionality:
- Extract sections, key terms, concepts, and media from the PDF
- Implement knowledge graph creation logic
- Add page number association with nodes
- Create API endpoints:
-
/upload_pdf
: Handle PDF upload and processing -
/get_pdf_list
-
/get_pdf
-
/get_knowledge_graph
-
/get_chapters_and_problems
-
/get_chapter_questions
-
/get_similarity_scores
-
/get_relevant_nodes
-
/get_relevant_pages
-
- Implement Cypher queries for each endpoint
- Set up PDF storage and retrieval system
- Create a new Vue.js project
- Set up project structure
- Create components:
- PDF uploader
- PDF viewer
- Knowledge graph visualization (using Cytoscape)
- Chapter and problem listing
- Question display
- Similarity scores display
- Relevant nodes display
- Relevant pages display
- Implement API calls to the Flask backend
- Design and implement the user interface
- Ensure proper communication between frontend and API
- Test data flow between all parts of the system
- Develop unit tests for Python components
- Develop unit tests for Vue.js components
- Perform integration testing
- Test Cypher query performance
- Test PDF processing and knowledge graph creation
- Profile and optimize knowledge graph creation process
- Optimize Cypher queries
- Refine user interface based on testing feedback
- Write API documentation
- Create user guide for the frontend
- Document the knowledge graph schema and relationships
- Document the PDF processing and knowledge graph creation process