mirror of
https://github.com/fccapria/scientify.git
synced 2026-01-12 02:36:10 +00:00
166 lines
4.4 KiB
Markdown
166 lines
4.4 KiB
Markdown
# 🧬 Scientify
|
|
|
|
**The intelligent platform to manage your scientific publications** 📚✨
|
|
|
|
Scientify is a modern web application that allows you to organize, catalog, and easily search your scientific publications. With advanced automatic document processing features and an intuitive interface, making the management of your scientific library a pleasant experience!
|
|
|
|
---
|
|
|
|
## 🚀 Main Features
|
|
|
|
### 📤 **Smart Upload**
|
|
- **Multi-format upload**: PDF, DOCX, LaTeX - everything gets automatically converted to PDF
|
|
- **Automatic metadata extraction**: from BibTeX files or manual compilation
|
|
- **Document conversion**: Advanced DOCX support with Pandoc and Mammoth
|
|
|
|
### 🔍 **Advanced Search**
|
|
- **Keyword search**: Quickly find the publications you need
|
|
- **Smart filters**: By author, year, journal, DOI
|
|
- **Flexible sorting**: By date, title, relevance
|
|
|
|
### 🤖 **NLP & Keyword Extraction**
|
|
- **Automatic keyword extraction**: Natural Language Processing algorithms automatically analyze your documents
|
|
- **Smart categorization**: Publications are automatically organized by topic
|
|
- **Advanced tagging**: Label system for precise cataloging
|
|
|
|
### 👥 **User Management**
|
|
- **Secure registration and authentication**: Complete account management system
|
|
- **Personal library**: Each user has access to their own private collection
|
|
- **Granular permissions**: Complete control over your documents
|
|
|
|
### 📊 **Modern Interface**
|
|
- **Responsive design**: Works perfectly on desktop, tablet, and mobile
|
|
- **Intuitive UI/UX**: Simple and pleasant navigation
|
|
- **Material-UI components**: Modern and accessible design
|
|
|
|
---
|
|
|
|
## 🛠️ Tech Stack
|
|
|
|
### Frontend 🎨
|
|
- **React 18**: Modern framework for reactive UIs
|
|
- **Material-UI**: Elegant and accessible components
|
|
- **Tanstack Query**: Optimized state management and caching
|
|
- **JavaScript ES6+**: Modern and performant code
|
|
|
|
### Backend ⚡
|
|
- **FastAPI**: High-performance Python framework
|
|
- **SQLAlchemy**: Robust ORM for database management
|
|
- **PostgreSQL**: Scalable relational database
|
|
- **Async/Await**: Asynchronous programming for maximum performance
|
|
|
|
### AI & NLP 🧠
|
|
- **Keyword Extraction**: Intelligent extraction using YAKE
|
|
|
|
---
|
|
|
|
## 🐳 Setup & Installation
|
|
|
|
Scientify supports two deployment modes: **Docker** (recommended) and **manual setup**.
|
|
|
|
### 🚢 Docker (Easiest way!)
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/fccapria/scientify.git
|
|
cd scientify
|
|
|
|
# Start everything with Docker Compose
|
|
docker-compose up -d
|
|
|
|
# Your app will be available at http://localhost:80
|
|
```
|
|
|
|
### 🔧 Manual Setup
|
|
|
|
#### Backend (Python + FastAPI)
|
|
```bash
|
|
cd backend
|
|
|
|
# Create virtual environment
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
|
|
# Install dependencies
|
|
pip install -r requirements.txt
|
|
|
|
# Configure database and environment variables
|
|
cp .env.example .env
|
|
# Edit .env with your configurations
|
|
|
|
# Start the server
|
|
uvicorn app.main:app --reload
|
|
```
|
|
|
|
#### Frontend (React)
|
|
```bash
|
|
cd frontend
|
|
|
|
# Install dependencies with pnpm (faster!)
|
|
pnpm install
|
|
# Or with npm: npm install
|
|
|
|
# Start the dev server
|
|
pnpm start
|
|
# Or: npm start
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 How It Works
|
|
|
|
1. **📝 Register** and create your personal account
|
|
2. **📤 Upload** your publications (PDF, DOCX, LaTeX)
|
|
3. **📋 Add metadata** manually or upload a BibTeX file
|
|
4. **🤖 Let the AI** automatically extract keywords
|
|
5. **🔍 Search and organize** your scientific library
|
|
6. **📊 Monitor** your collection with advanced statistics
|
|
|
|
---
|
|
|
|
## 🌟 Roadmap
|
|
|
|
- [ ] 📱 Native mobile app
|
|
- [ ] 🔗 Integration with arXiv and PubMed
|
|
- [ ] 📈 Advanced analytics and citation metrics
|
|
- [ ] 🤝 Collaboration and sharing between users
|
|
- [ ] 🌐 Public API for integrations
|
|
- [ ] 📧 Email notifications for new publications
|
|
|
|
---
|
|
|
|
## 🤝 Contributing
|
|
|
|
We'd love your help to make Scientify even better!
|
|
|
|
1. 🍴 **Fork** the project
|
|
2. 🌿 **Create** a branch for your feature (`git checkout -b feature/new-feature`)
|
|
3. ✨ **Commit** your changes (`git commit -m 'Add new feature'`)
|
|
4. 📤 **Push** to the branch (`git push origin feature/new-feature`)
|
|
5. 🔀 **Open** a Pull Request
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
This project is released under the MIT license. See the `LICENSE` file for details.
|
|
|
|
---
|
|
|
|
## 🚨 Support
|
|
|
|
Having problems or suggestions?
|
|
|
|
- 🐛 [Open an Issue](https://github.com/fccapria/scientify/issues)
|
|
- 📧 Email: [francesco@capria.eu]
|
|
|
|
---
|
|
|
|
<div align="center">
|
|
|
|
**Created with ❤️ by [@fccapria](https://github.com/fccapria)**
|
|
|
|
</div>
|
|
|
|
---
|
|
---
|