Skip to content

estif0/fullstack-ir-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

Fullstack IR System

Overview

This is a fullstack Information Retrieval (IR) project designed to process, index, and search documents efficiently. The project is divided into two main components:

  1. Client: A modern web application built with TypeScript and Vite for user interaction.
  2. Server: A Python-based backend that handles document processing, indexing, and search functionalities.

The project is ideal for exploring IR concepts and building scalable search systems.


Features

Client

  • Built with React and TypeScript.
  • Modular UI components for reusability.
  • Interactive and responsive design.
  • Integration with the backend API for search and retrieval.

Server

  • Document processing and indexing using NLTK.
  • RESTful API for search and retrieval.
  • Logging for monitoring and debugging.
  • Utilities for file processing and data management.

Project Structure

client/
  src/
    components/       # Reusable UI components
    hooks/            # Custom React hooks
    lib/              # Utility functions
    pages/            # Application pages
    types/            # TypeScript type definitions
  public/             # Static assets
  vite.config.ts      # Vite configuration

server/
  app/
    api/              # API routes
    core/             # Core application logic
    utils/            # Utility scripts
  data/               # Indexed data and test files
  logs/               # Log files
  tests/              # Test cases
  requirements.txt    # Python dependencies

Prerequisites

Client

  • Node.js (v16 or higher)
  • pnpm (preferred package manager)

Server

  • Python 3.10 or higher
  • pip (Python package manager)

Setup Instructions

Client

  1. Navigate to the client directory:
    cd client
  2. Install dependencies:
    pnpm install
  3. Start the development server:
    pnpm dev
  4. Open the application in your browser at http://localhost:3000.

Server

  1. Navigate to the server directory:
    cd server
  2. Create a virtual environment:
    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  3. Install dependencies:
    pip install -r requirements.txt
  4. Run the server:
    python run.py
  5. The server will be available at http://localhost:5000.

Usage

  1. Upload documents via the client interface.
  2. Use the search bar to query indexed documents.
  3. View search results and document details.

Testing

Client

Run the following command to execute tests:

pnpm test

Server

Run the following command to execute tests:

pytest

Logs

Server logs are stored in the server/logs/ directory. These logs provide insights into server operations and errors.


Contributing

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature-name
  3. Commit your changes:
    git commit -m "Add feature description"
  4. Push to your branch:
    git push origin feature-name
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published