The objective is to develop a Web application that allows users to search for scientific articles based on a list of keywords.
- Search in titles, keywords, authors, and full text for articles matching user-specified terms.
- Filter search results by:
- Keywords
- Authors
- Institutions
- Publication date range
- View details of each article, including:
- Full text (as text and PDF)
- Bibliographic references
- Save favorite articles for future reading.
- Manage moderators (add, edit, delete).
- Upload PDFs from a URL:
- Extract text from PDFs (one or two-column layouts supported).
- Analyze extracted text to obtain article metadata.
- Index data into Elasticsearch for efficient searching.
- Review and correct extracted data if necessary.
Backend repository for the project
- Developed with FastAPI (Python framework).
- Using a virtual environment is highly recommended; Miniconda is suggested for this project.
- Create a virtual environment:
conda create -n "env_name" python=3.11 - Activate the environment:
conda activate "env_name" - Install required dependencies:
pip install -r requirements.txt
- Start the application:
python main.py
-
If you install a new package:
pip install <package-name>
Before committing and pushing, make sure to update the
requirements.txtfile:pip freeze > requirements.txt -
Database Access:
- All database operations must use SQLAlchemy for clean code and security.
-
Working with Git:
- Create a feature branch before implementing anything:
git checkout -b "firstname/feature-name" - Push your branch after your changes:
git push origin "firstname/feature-name"
- Create a feature branch before implementing anything:
models/— Database models/entities.controllers/— Business logic.routes/— API route definitions.validators/— Classes used for validating request data.utils/— Utility functions and credentials management.tests/— Unit tests.