Softrans Reservations

Reservations web application for rail passenger transport company developed with Angular.

  • Client

    Romania Softrans

  • Industry

    Passenger Transportation

  • Provided services

    Web development Maintenance & Support

  • Started year

    2023

  • View project website

Overview

Softrans is a rail passengers transport company from Romania that needed a web application for their customers to buy online tickets or straight from the train.

Technologies

Project Description

Softrans Abonamente is an Angular-based web application for Romanian train ticket reservations and subscriptions. The application allows users to purchase train tickets, reserve seats, and buy monthly/periodic subscriptions for train travel.

Technology Stack

  • Frontend: Angular 19 with TypeScript
  • UI Framework: Angular Material
  • Styling: SCSS with custom component styles
  • State Management: Angular signals and reactive forms
  • HTTP Client: Angular HttpClient with custom interceptors
  • Testing: Jasmine/Karma for unit tests, Cypress for E2E tests
  • Build Tool: Angular CLI with custom webpack configuration
  • Payment Integration: MobilPay payment gateway

Key Features

  1. User Authentication: Login, registration, password reset, email verification
  2. Train Reservations: Multi-step booking process with seat selection
  3. Subscriptions: Monthly/periodic train pass purchases
  4. Discount System: Various discount types and promotional codes
  5. Real-time Seat Availability: Dynamic seat selection with conflict resolution
  6. Payment Processing: Secure online payments with MobilPay
  7. Invoice Generation: Automatic invoice creation for purchases
  8. Multi-language Support: Romanian interface with proper localization

Application Architecture

  • Modular Structure: Feature-based organization with core, shared, and screen modules
  • Service Layer: Centralized business logic and API communication
  • Component Hierarchy: Reusable components for train visualization, forms, and UI elements
  • Route Guards: Authentication and authorization protection
  • Interceptors: HTTP request/response handling for loading, errors, and content hashing

Business Logic

  • Pricing Model: Distance-based, time-based, and seat-type pricing
  • VAT Calculation: Dynamic VAT rate application based on current regulations
  • Reservation States: Draft → Open → Confirmed → Done/Cancelled workflow
  • Seat Management: Real-time seat locking and availability checking
  • Discount Engine: Flexible discount application with validation rules

Development Environment

  • Version Control: Git with conventional commit messages
  • Code Quality: ESLint, Prettier, and custom linting rules
  • CI/CD: Automated testing and deployment pipelines
  • Environment Configuration: Development, staging, and production environments

API Integration

  • Backend API: RESTful API at https://api.softrans.ro/api/v1
  • Authentication: Session-based with JWT-like tokens
  • Data Models: Comprehensive TypeScript interfaces for all entities
  • Error Handling: Structured error responses with user-friendly messages

Testing Strategy

  • Unit Tests: Component and service testing with Jasmine
  • E2E Tests: Critical user flows with Cypress
  • Test Data: Mock data and fixtures for consistent testing
  • Coverage: High test coverage for business-critical functionality

Performance Considerations

  • Lazy Loading: Route-based code splitting
  • Change Detection: OnPush strategy for optimized rendering
  • Bundle Optimization: Tree shaking and asset optimization
  • Caching: HTTP caching and local storage for user preferences

Security Features

  • Input Validation: Comprehensive client and server-side validation
  • XSS Protection: Content sanitization and secure rendering
  • CSRF Protection: Request hashing and validation
  • Secure Payments: PCI-compliant payment processing
  • Data Encryption: Sensitive data encryption
Visit project website