This project provides a full-stack solution for storing, processing, and searching Amharic text documents.
# Amharic Information Storage and Retrieval (ISR) System
This project provides a full-stack solution for storing, processing, and searching Amharic text documents. It includes:
- Python backend for text processing, tokenization, stemming, and search
- Minimal Django API for serving search and document endpoints
- React + Vite + Tailwind frontend for user interaction
## Project Structure
- `main.py`, `amhisr_search.py`, `font_config.py`: Core Python scripts for text processing and search
- `amharic_corpus/`: Directory containing Amharic text documents
- `custom_rule_based_amharic_stemmer/`: Custom Amharic stemmer and normalizer
- `amharic_isr_django/`: Minimal Django project for API endpoints
- `frontend/`: React frontend (Vite + Tailwind)
## Requirements
### Python (Backend)
- Python 3.10+
- It is strongly recommended to use a Python virtual environment to avoid dependency conflicts.
- Create and activate a virtual environment:
```bash
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
```
- Install all required backend dependencies with:
```bash
pip install -r requirements.txt
```
This will install all necessary Python packages (including Django, stopwordsiso, matplotlib, and all transitive dependencies) in one step. The versions in requirements.txt match those in the project's virtual environment for full reproducibility.
### Node.js (Frontend)
- Node.js 18+
- Install all required frontend dependencies with:
```bash
cd frontend
npm install
```
This will install all necessary JavaScript packages (React, Vite, Tailwind CSS, etc.) for the frontend in one step.
## Running the Project
### Backend (Django API)
```bash
cd amharic_isr_django
python ../amharic_isr_django/api.py runserver
```
### Frontend (React)
```bash
cd frontend
npm run dev
```
## Tools & Libraries Used
### Python
- stopwordsiso: Amharic stopwords
- matplotlib: For plotting frequency graphs
- Django: Minimal API server
- Custom Amharic s …