Software Requirements Specification (SRS-Lite)
1. Purpose
This document defines a lightweight set of software requirements for the MVP version of the Travel App. It outlines the functional and non-functional requirements to help the development team implement features aligned with the business goals.
2. Scope
The system is a web-based platform that allows users to browse travel packages, customize itineraries, view maps/routes, and select hotels. The backend will be managed by the Admin using Django Admin.
3. Definitions
| Term | Description |
|---|---|
| Itinerary | A personalized version of a travel package |
| Package | A general travel blueprint/template |
| Admin | Internal software team managing the app |
| User | Refers to travelers, agencies, or hotels |
4. System Overview
The system has the following components:
- Frontend: Next.js + Tailwind CSS
- Backend: Django with PostgreSQL
- Design: Figma for UI/UX
- Documentation: MkDocs + PlantUML (PUML) + Cloudflare Pages
5. Functional Requirements
5.1 User Roles & Authentication
- Users must register and log in using email or Google.
- Agencies and Hotels require admin approval.
- Role-based access control
- Passwords must be hashed and meet complexity requirements.
- Users can reset passwords via email verification.
5.2 Packages
- Display popular packages by default on homepage.
- Users can filter packages (days, people, preferences).
- Users can fork a package into a custom itinerary.
- Group itineraries can be created by agencies.
- Save itineraries to user profile.
5.3 Itineraries
- Itineraries are personal and can be fully customizable.
- Should support detailed view.
- Users can save, edit, and delete itineraries from their profile.
- Itineraries include daily schedules with timestamps and locations.
5.4 Maps & Routes
- Users can view travel routes via map based on their itinerary.
- Standalone route view for casual browsing.
- Routes include estimated travel times and distances.
5.5 Hotels
- Hotel details include name, address, star rating, and amenities
- Hotels are assigned manually by Admin (for MVP).
- Users can select hotel options within itinerary creation flow.
5.6 Admin Dashboard
- Admin can manage users using Django Admin..
- Admin can create/edit/delete packages, itineraries, and hotel listings.
-
Admin can view all user generated itineraries.
5.7 Feedback
- Users can submit feedback like rating, comments.
6. Non-Functional Requirements
| Area | Requirement |
|---|---|
| Performance | Initial response time < 2s |
| Scalability | Should support 10,000+ users (post-MVP) |
| Security | OAuth2 (Google) + secure password handling |
| Maintainability | Modular and well-documented codebase |
| Accessibility | Web responsive; mobile-friendly |
7. Constraints
- All management features must use Django Admin in MVP.
- Limited third-party APIs (Google Maps allowed).
- No real payment or booking APIs in MVP.
8. System Diagrams
8.1 User Role & Flow (PlantUML)
9. Future Considerations
- Payment gateway integration
- In-app notifications
- Role-based dashboards
- CMS for admin beyond Django
This is a living document and should be reviewed and updated as features evolve.