About & Contributing¶
About NassaQ¶
NassaQ (Arabic: نسّـق, meaning "to organize" or "to format") is an AI-powered document management and digitization platform. It is developed as a graduation project by a team of 9 students, combining backend engineering, AI/ML, data engineering, and frontend development. For an overview of the system architecture, see the System Design page. For deployment details, see the Deployment page. For the current project status and planned features, see the Roadmap.
External Contributions
NassaQ is a graduation project. External contributions (pull requests, issues, feature requests) are not accepted. This documentation is provided for academic reference and team coordination.
The Team¶
Role Distribution¶
| Role | Members | Responsibilities |
|---|---|---|
| Front-End Developer | 1 | React UI, component design, i18n, animations |
| Back-End Developer | 2 | FastAPI server, REST API, auth system, database |
| AI Engineer | 2 | OCR pipeline, PaddleOCR/EasyOCR integration, Arabic text detection |
| Data Engineer | 4 | Database design, data pipelines, Azure infrastructure, deployment |
Repository Structure¶
The project is organized as 3 independent Git repositories under a shared parent directory:
| Repository | Remote | Description |
|---|---|---|
server/ |
NassaQ/server |
FastAPI backend server |
ocr/ |
NassaQ/ocr-api |
OCR processing worker |
frontend/ |
NassaQ/User_Interface |
React frontend application |
The top-level docker-compose.yml and this documentation site (docs-site/) live outside the individual repos.
nassaq/
├── server/ # Backend server (own Git repo)
├── ocr/ # OCR worker (own Git repo)
├── frontend/ # Frontend app (own Git repo)
├── docker-compose.yml # Multi-service orchestration
└── docs-site/ # Documentation (this site)
Internal Workflow¶
Git Strategy¶
- Each repository has its own branching strategy
- Feature branches are created for new work
- Pull requests are reviewed by team members before merging
- Main branch is kept in a deployable state
Code Standards¶
Python (Backend + OCR)¶
| Tool | Purpose |
|---|---|
| Ruff | Linting and formatting |
| Type hints | Used throughout for documentation and IDE support |
| Pydantic | Schema validation for all API inputs/outputs |
| Async/await | Fully asynchronous codebase |
TypeScript (Frontend)¶
| Tool | Purpose |
|---|---|
| ESLint | Linting with TypeScript and React Hooks plugins |
| TypeScript | Type safety (strict mode off, but types used) |
| Tailwind CSS | Utility-first styling |
| shadcn/ui | Consistent component library |
Package Management¶
| Service | Manager | Lock File |
|---|---|---|
| Backend Server | uv |
uv.lock |
| OCR Worker | uv |
uv.lock |
| Frontend | npm |
package-lock.json |
| Documentation | uv |
uv.lock |
Communication¶
How the Team Coordinates¶
- Internal communication channels for day-to-day discussions
- Regular team meetings for sprint planning and progress reviews
- Shared documentation (this site) for technical reference
Reporting Issues¶
Since this is a graduation project, issues are tracked internally. There is no public issue tracker.
License¶
This project is developed for academic purposes as part of a graduation requirement. It is not released under an open-source license.