Page 1 of 5
System Requirements Document (SRD) for Indigo-Program
1. Introduction
The Indigo-Program is a software project designed to provide users with the lowest ticket prices for flights between specified destinations by integrating with multiple APIs. This document outlines the system requirements for the Indigo-Program, which will be developed to meet the needs of Khalil Abuosba in Canada. The system will leverage real-world APIs to fetch live ticket prices and determine the most cost-effective option for users.
2. System Overview
The Indigo-Program is a flight price comparison tool that communicates with three APIs to fetch ticket prices for flights between two locations. The system will dynamically query APIs, process the responses, and return the lowest ticket price to the user. The program will be implemented using Prolog, leveraging its declarative nature for reasoning and querying data.
The system will:
- Support live API integration with real-world examples such as Amadeus Flights API.
- Handle OAuth2 authentication for APIs requiring secure access.
- Provide a user-friendly interface for querying flight prices.
- Be optimized for users in Canada, with locale-specific defaults such as CAD currency and Toronto (YYZ) as a common origin.
3. Functional Requirements
- As a User, I should be able to input the origin, destination, and travel date to search for flight prices.
- As a User, I should receive the lowest ticket price from the integrated APIs.
- As a User, I should be able to view ticket prices in Canadian Dollars (CAD).
- As a User, I should be notified if an API fails or returns an error.
- As a User, I should be able to see the details of the API used to fetch the lowest price.
4. User Personas
Page 2 of 5
4.1 Primary User
- Name: Khalil Abuosba
- Role: End-user
- Goals: To find the lowest ticket prices for flights between Toronto and other destinations.
- Pain Points: High ticket prices, difficulty comparing prices across multiple platforms.
- Technical Proficiency: Moderate; comfortable with basic software interfaces.
4.2 Guest User
- Name: Guest
- Role: Occasional user
- Goals: To quickly check flight prices without creating an account.
- Pain Points: Limited time to search for flights.
5. Visuals Colors and Theme
The Indigo-Program will feature a modern, sleek design inspired by the theme of travel and exploration. The color palette will reflect the serenity of the sky and the vibrancy of travel.
Color Palette:
- Background: #EAF6FF (Sky Blue)
- Surface: #FFFFFF (Pure White)
- Text: #2A2A2A (Charcoal Black)
- Accent: #0078D7 (Indigo Blue)
- Muted Tones: #B0C4DE (Light Steel Blue)
6. Signature Design Concept
Page 3 of 5
Interactive Flight Map with Dynamic Price Pins
The homepage of the Indigo-Program will feature an interactive world map where users can visually explore flight routes. Key features include:
- Dynamic Price Pins: Pins on the map represent destinations, with real-time ticket prices displayed as tooltips when hovered over.
- Animated Flight Paths: When a user selects a destination, an animated flight path will connect the origin and destination, creating a sense of movement and travel.
- Time-Based Color Shifts: The map background will subtly change colors based on the time of day (e.g., warm tones for sunrise, cool tones for night).
- Micro-Interactions: Clicking on a pin will expand a modal with detailed flight information, including airline, duration, and price breakdown.
- Zoom and Pan: Users can zoom in and pan across the map to explore different regions.
This design will create an engaging and memorable first impression, encouraging users to interact with the system.
7. Non-Functional Requirements
- Performance: The system should fetch and process API responses within 5 seconds.
- Scalability: The system should support up to 1,000 concurrent users.
- Reliability: The system should handle API failures gracefully and provide fallback options.
- Security: OAuth2 authentication must be implemented for APIs requiring secure access.
- Localization: The system should default to CAD currency and support English as the primary language.
8. Tech Stack
Frontend
- React: For building the web interface.
- React Native: For a potential mobile application.
Backend
- Python: For API integration and business logic.
- FastAPI: For building the backend services.
Database
- MySQL: For storing user queries and API response logs.
- Alembic: For database migrations.
AI Models
- GPT 5.2: For user-friendly responses and query assistance.
Page 4 of 5
AI Tools
- LangChain: For managing API integrations and data flow.
Local Orchestration
- Docker: For containerization.
- docker-compose: For managing multi-container applications.
Server-Side Orchestration
- Kubernetes: For scaling and managing the application in production.
9. Assumptions and Constraints
Assumptions
- APIs used will provide ticket prices in JSON format.
- APIs will support GET requests for fetching flight data.
- OAuth2 tokens will remain valid for at least 30 minutes.
Constraints
- The system is limited to three APIs for price comparison.
- API rate limits must be adhered to, requiring efficient query management.
- The system will only support flights originating from Canada in the initial phase.
Page 5 of 5
10. Glossary
- API: Application Programming Interface, used for communication between the Indigo-Program and external services.
- OAuth2: An authentication protocol for secure API access.
- CAD: Canadian Dollar, the default currency for the system.
- Prolog: A declarative programming language used for implementing the system logic.
- FastAPI: A Python framework for building APIs.
- Alembic: A database migration tool for Python.
- LangChain: A framework for managing AI and API integrations.
This document provides a comprehensive overview of the requirements for the Indigo-Program. Khalil, let me know if there are additional features or changes you'd like to incorporate!
No comments yet. Be the first!