Skip to content

aabirpal/searchapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knowledge Engine — Personal Search & Knowledge Management System

A full-stack, portfolio-quality personal knowledge base and search engine built with Java/Spring Boot, PostgreSQL, and React.


Architecture

knowledge-engine/
├── backend/          → Spring Boot REST API (Java 21, Maven)
├── frontend/         → React SPA (Vite)
└── README.md

Tech Stack

Layer Technology
Backend Java 21, Spring Boot 3.x, Maven
Database PostgreSQL 15+ (with full-text search)
Frontend React 18, Vite, React Router v6
HTTP Client Axios
Migrations Flyway
Styling CSS Modules + CSS Variables

Prerequisites

  • Java 21+
  • Node.js 18+
  • PostgreSQL 15+
  • Maven 3.8+

Database Setup

-- Run as postgres superuser
CREATE DATABASE knowledge_engine;
CREATE USER ke_user WITH ENCRYPTED PASSWORD 'ke_password';
GRANT ALL PRIVILEGES ON DATABASE knowledge_engine TO ke_user;

Backend Setup

cd backend

# Copy and configure environment
cp src/main/resources/application.properties.example src/main/resources/application.properties
# Edit application.properties with your DB credentials

# Run (Flyway will auto-apply migrations)
mvn spring-boot:run

Backend starts on http://localhost:8080


Frontend Setup

cd frontend
npm install
npm run dev

Frontend starts on http://localhost:5173


API Reference

Documents

Method Endpoint Description
GET /api/documents List all (paginated)
GET /api/documents/{id} Get single document
POST /api/documents Create document
PUT /api/documents/{id} Update document
DELETE /api/documents/{id} Delete document
GET /api/documents/search Search (q, tags, sort, page)

Tags

Method Endpoint Description
GET /api/tags List all tags
POST /api/tags Create tag
DELETE /api/tags/{id} Delete tag

Query Parameters for /api/documents and /api/documents/search

Param Type Description
q string Full-text search query
tags string Comma-separated tag names
page int Page number (0-indexed, default: 0)
size int Page size (default: 10, max: 50)
sort string Field to sort by (createdAt, title)
dir string Sort direction: asc / desc

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors