Skip to content

feixue94/paper-notes

Repository files navigation

Paper Notes Website

A simple website used to store and display personal notes on academic papers. The website now truly dynamically discovers papers from the papers directory by scanning it in real-time - no hardcoded lists!

Features

  • True Dynamic Paper Discovery: Automatically scans the papers directory for JSON files in real-time
  • Multiple Server Options: Supports Python, PHP, and Node.js servers
  • Create New Papers: Easy form-based paper creation
  • Search & Filter: Search by title, author, keywords, and filter by category, conference, year
  • Topics Management: Create and manage research topics (e.g., Robotics, World Models) with detailed markdown notes
  • Datasets Catalog: Track research datasets with keywords and links
  • Unread Papers List: Maintain a list of papers to read with priorities
  • Useful Links: Save helpful resources and links
  • Responsive Design: Works on desktop and mobile devices

Quick Start (Recommended)

The easiest way to get started is with the Python server:

python3 server.py

Then visit: http://localhost:8000

The server will automatically scan your papers/ directory and discover all JSON files dynamically!

Setup Options

Option 1: Python Server (Recommended - Works out of the box)

python3 server.py          # Default port 8000
python3 server.py 8001     # Custom port

Truly dynamic - Scans papers directory in real-time
No configuration needed
Works on any system with Python 3

Option 2: PHP Server

If your server supports PHP, upload list-papers.php and the website will automatically use server-side directory scanning.

Option 3: Node.js Server

node list-papers.js

How Dynamic Discovery Works

  1. Real-time scanning: When you request the paper list, the server scans the papers/ directory
  2. Automatic discovery: Finds all .json files without any manual configuration
  3. No hardcoded lists: The system adapts automatically when you add/remove papers
  4. Sorted results: Papers are returned in alphabetical order

Adding Papers

Method 1: Use the Web Interface

  1. Visit create-paper.html
  2. Fill in the paper details
  3. Download the generated JSON file
  4. Upload it to the papers/ directory
  5. Refresh the main page - your new paper appears automatically!

Method 2: Manual Creation

  1. Create a JSON file in the papers/ directory
  2. Follow this structure:
{
  "title": "Paper Title",
  "authors": "Author1, Author2", 
  "conference": "Conference Name",
  "year": 2024,
  "keywords": ["keyword1", "keyword2"],
  "categories": ["category1"],
  "mainIdea": "Main idea description",
  "takeaways": "Key takeaways",
  "figures": [],
  "addedTime": "2024-01-01T00:00:00.000Z"
}
  1. Refresh the main page - appears automatically!

Managing Topics ⭐ NEW

Topics allow you to organize research areas and track progress with detailed markdown notes.

Creating a Topic

  1. Visit topics.html
  2. Fill in the topic name (e.g., "Robotics", "World Models")
  3. Add a short description
  4. Write progress notes in Markdown format in the editor
  5. Click "Save Topic"

Features

  • Automatic slug generation: Topic names are converted to URL-friendly slugs (e.g., "World Models" → "world-models")
  • Markdown notes: Each topic has its own .md file in the topics/ directory
  • View notes: Click "View Notes" to preview the markdown content
  • Edit topics: Update topic information and notes anytime
  • Track progress: Use markdown to document developments, papers to read, resources, etc.

Example Topics

Two example topics are included:

  • Robotics: Tracking manipulation, navigation, and learning methods
  • World Models: Exploring predictive models for embodied AI

Suggested Topics

  • Reinforcement Learning
  • Computer Vision
  • Natural Language Processing
  • Multi-Modal Learning
  • 3D Vision
  • Video Understanding

Current Status

29 papers discovered dynamically from your papers/ directory
No manual paper list maintenance needed
Real-time directory scanning working

File Structure

paper-notes/
├── index.html              # Main paper listing page
├── paper.html              # Individual paper view  
├── create-paper.html       # Create new paper form
├── unread-papers.html      # Unread papers list
├── datasets.html           # Datasets catalog
├── topics.html             # Topics management ⭐ NEW
├── useful-links.html       # Useful links collection
├── style.css               # Styles
├── server.py               # Python server with dynamic discovery ⭐
├── list-papers.php         # PHP directory scanner
├── list-papers.js          # Node.js server alternative
├── datasets.json           # Datasets data
├── topics.json             # Topics data ⭐ NEW
├── unread_papers.json      # Unread papers data
├── useful_links.json       # Useful links data
├── papers/                 # Directory containing paper JSON files
│   ├── Paper1.json         # Automatically discovered
│   ├── Paper2.json         # Automatically discovered  
│   └── ...                 # All papers auto-discovered!
└── topics/                 # Directory containing topic markdown files ⭐ NEW
    ├── robotics.md         # Research progress notes
    ├── world-models.md     # Research progress notes
    └── ...                 # Add more topics!

API Endpoints

Papers

  • GET /list-papers - Returns JSON list of all papers in directory
  • GET / - Serves the main application

Topics ⭐ NEW

  • GET /topics - Returns JSON list of all topics
  • POST /topics - Save topics list
  • GET /topics/{slug} - Get markdown content for a specific topic
  • POST /topics/{slug} - Save markdown content for a specific topic

Other Endpoints

  • GET /datasets - Get datasets list
  • POST /datasets - Save datasets list
  • GET /unread-list - Get unread papers list
  • POST /unread-list - Save unread papers list
  • GET /useful-links - Get useful links list
  • POST /useful-links - Save useful links list

Example response:

{
  "paperFiles": [
    "papers/Paper1.json",
    "papers/Paper2.json",
    "..."
  ]
}

Troubleshooting

If you see "No papers found":

  1. Start the server: python3 server.py
  2. Check the URL: Make sure you're visiting http://localhost:8000 (not opening the HTML file directly)
  3. Check papers directory: Ensure you have .json files in the papers/ folder

Browser Compatibility

  • Modern browsers with ES6+ support
  • JavaScript must be enabled
  • Must be accessed through a server (not as local file)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors