Built By Team NEXUS
An AI-Driven System for Automated Requirements Engineering from Unstructured Stakeholder Communication.
Sutrava fundamentally transforms the software requirement gathering lifecycle by autonomously extracting, classifying, and structuring requirements from unrefined communication channels. Whether dealing with email correspondence, Slack interactions, Jira tickets, or meeting transcripts, Sutrava distills unstructured data into actionable, structured Software Requirement Specification (SRS) documentation.
- AI-Powered NLP Pipeline:
- Leverages a fine-tuned DistilBERT architecture for rapid requirement detection.
- Employs a spaCy + BERT transformer ecosystem for Named Entity Recognition (NER).
- Cross-Platform Desktop Application:
- A sophisticated client built on the Electron framework.
- Fortified with React and Tailwind CSS for a seamless, interactive user experience.
- Backend Orchestration:
- Driven by a robust Spring Boot REST API.
- Seamlessly manages external communications, directly integrated with Atlassian OAuth2 and Jira API endpoints.
- Interactive Dashboards:
- Advanced visual interfaces to analyze extracted requirements, contextual clusters, and prioritization levels.
- Automatically exports structured Software Requirement Specification (SRS) documentation.
Sutrava operates through a microservice-like architecture spanning an AI inference engine, a robust Java backend, and an interactive desktop client.
NEXUS-Sutrava-main/
├── model/ # AI Pipeline (Python, PyTorch, Transformers, spaCy)
│ ├── requirement_classifier/# DistilBERT binary classifier (Req / Not Req)
│ ├── ner_model/ # Named Entity Recognition (spaCy 3 + BERT)
│ ├── clustering/ # Sentence embeddings & clustering
│ ├── prioritization/ # Priority level classification
│ └── inference_pipeline/ # End-to-end processing pipeline
│
├── Sutrava_Frontend/ # Desktop Application (Electron + React + Vite)
│ ├── electron/ # Electron main process scripts
│ ├── src/ # React frontend source code
│ └── package.json # Frontend dependencies & build scripts
│
├── BackEnd/ # Spring Boot RESTful API & Integrations
│ ├── src/ # Java Source Code
│ ├── pom.xml # Maven dependencies
│ └── Dockerfile # Containerization config
│
├── Reports/ # Project Planning & Documentation
│ ├── Project Synopsis-Report-Final.pdf
│ └── Project SRS-Report.docx
│
└── Research Papers/ # Research, Formats, and Papers
└── Sutrava_Research_Paper.pdf (and related materials)
Ensure you are located at the root directory, then install the core Python dependencies:
cd model
pip install -r requirements.txt
python -m spacy download en_core_web_smNote: Consult
model/README.mdfor extended guidelines on training methodologies, model checkpoints, and executing the inference pipeline.
Navigate to the frontend directory to initialize the user interface:
cd Sutrava_Frontend
npm installLaunch the application in development mode:
npm run electron:devTo compile a production-ready build:
npm run electron:buildNavigate to the BackEnd directory to configure application properties, define Atlassian OAuth credentials, and instantiate the Spring Boot server environment.
Using Maven Wrapper:
cd BackEnd
./mvnw spring-boot:run- Preprocessing: Raw text from various sources is cleaned and tokenized.
- Requirement Classification: DistilBERT determines if a sentence is a valid software requirement.
- Named Entity Recognition (NER): Extracts key entities (e.g., Actor, Action, System Component).
- Clustering: Groups related requirements using sentence embeddings.
- Prioritization: Automatically assigns priority levels (High/Medium/Low) based on extracted context.