A modern, full-stack web application that leverages Google Gemini AI to generate professional business proposals in minutes. Built with cutting-edge Angular architecture and deployed on Vercel.
- Overview
- Key Features
- Tech Stack
- Architecture
- Project Structure
- Key Technical Highlights
- Development Setup
- Disclaimer
This application solves a real-world problem for freelancers and small businesses: creating professional, client-ready proposals quickly and efficiently. Instead of spending hours crafting proposals from scratch, users can input project details and receive a fully formatted, AI-generated proposal that can be edited, previewed, and exported as a professional PDF.
- Freelancers waste 2-4 hours per proposal
- Inconsistent proposal quality and formatting
- Manual pricing calculations and timeline planning
- Difficulty maintaining professional tone across different clients
- AI-powered generation using Google Gemini API
- 4-step wizard interface for intuitive proposal creation
- Real-time editing with section-by-section customization
- Professional PDF export with intelligent page breaking
- Multi-language support (English/Spanish)
- Responsive design for desktop and mobile
- Intelligent Proposal Writing: Leverages Google Gemini AI to generate contextually relevant proposals
- Customizable Tone: Formal, casual, or professional tone selection
- Multi-language Support: Generate proposals in English or Spanish
- Structured Output: Automatically creates sections (Executive Summary, Scope, Deliverables, Timeline, Pricing, Terms & Conditions)
- 4-Step Wizard Flow:
- Project details and client information
- AI-generated proposal preview
- Section-by-section editing with live preview
- PDF preview and download
- Real-time Markdown Rendering: Live preview of formatted content
- Section Management: Edit individual sections without affecting others
- Auto-save Functionality: Proposals are saved automatically
- Intelligent Page Breaking: Prevents content from being cut off mid-section
- Custom Cover Page: Dynamic cover with client name and proposal title
- Responsive Layout: Adapts content to fit pages elegantly
- Professional Styling: Clean, business-ready formatting
- Direct Download: One-click PDF export
- Skeleton Loading States: Smooth loading animations during AI generation
- Responsive Design: Works seamlessly on desktop, tablet, and mobile
- Dark/Light Mode Ready: Tailwind CSS foundation supports theme switching
- Accessible Components: Built with accessibility best practices
- Angular 20.3 - Latest version with Signals, standalone components, and modern architecture
- TypeScript 5.9 - Type-safe development with strict mode
- RxJS 7.8 - Reactive programming for state management
- Tailwind CSS 4.1 - Utility-first CSS framework
- Custom Component Library - Reusable, accessible components
- Responsive Design - Mobile-first approach
- Google Gemini API (
@google/genai) - Advanced AI for content generation - Intelligent Prompt Engineering - Context-aware proposal generation
- Mock Data System - Development-friendly testing without API costs
- jsPDF 3.0 - Client-side PDF creation
- html2canvas 1.4 - HTML to image conversion
- Custom Page Break Logic - Intelligent content pagination
- Angular CLI - Modern build tooling
- Vercel - Serverless deployment platform
- Environment Variable Management - Secure API key handling
- ESLint - Code quality and consistency
- Prettier - Code formatting
- TypeScript Strict Mode - Enhanced type safety
- Standalone Components: Modern Angular architecture without NgModules
- Signal-based State Management: Reactive state with Angular Signals
- Dependency Injection: Service-based architecture for separation of concerns
- Lazy Loading: Route-based code splitting for optimal performance
- AI Service: Handles all Gemini API interactions with error handling and fallbacks
- Proposal Service: Manages proposal CRUD operations
- i18n Service: Internationalization support
- Angular Signals: Reactive primitives for component state
- Form Management: Reactive Forms with validation
- Session Storage: Client-side persistence for PDF previews
- Environment Variable Injection: Build-time API key injection
- Gitignore Protection: Sensitive files excluded from version control
- API Key Validation: Graceful fallback to mock data when keys are missing
src/
βββ app/
β βββ components/ # Reusable UI components
β β βββ shared/ # Sidebar, Header, Footer, Icons
β βββ pages/ # Feature pages
β β βββ dashboard/ # Proposal list view
β β βββ proposal-editor/ # Main proposal creation flow
β β βββ pdf-viewer/ # PDF preview page
β β βββ landing/ # Landing page
β βββ services/ # Business logic services
β β βββ ai.ts # Gemini AI integration
β β βββ proposal.ts # Proposal data management
β β βββ i18n.ts # Internationalization
β βββ models/ # TypeScript interfaces
β βββ pipes/ # Custom Angular pipes
β βββ config/ # App configuration
βββ environments/ # Environment-specific configs
βββ assets/ # Static assets
scripts/
βββ generate-env-config.js # Build-time env var injection
// Intelligent page breaking prevents content cutoff
- Separates cover page and content for independent rendering
- Dynamically calculates section heights
- Splits content by logical sections (<h2> tags)
- Ensures sections never break across pages
- Handles edge cases for long content sections// Robust error handling and development-friendly mock system
- Graceful degradation when API keys are missing
- Configurable mock data for development
- Context-aware prompt engineering
- Multi-language AI responses// Leveraging latest Angular features
- Standalone components (no NgModules)
- Signals for reactive state management
- Dependency injection with inject() function
- Lazy-loaded routes for code splitting
- Type-safe reactive forms// Secure API key handling
- Node.js script generates environment files at build time
- No process.env access in browser code
- Supports both local (.env) and Vercel environment variables
- Prevents API key exposure in source code// Client-side PDF generation with professional formatting
- html2canvas for accurate HTML-to-image conversion
- Custom CSS cleaning to remove unsupported features
- Intelligent content pagination
- Professional cover page generation- Node.js 18+ and npm
- Angular CLI 20+
- Google Gemini API key (optional, mock data available)
-
Clone the repository
git clone <repository-url> cd proposal-app
-
Install dependencies
npm install
-
Configure environment variables (optional)
# Create .env file in root directory GEMINI_API_KEY=your_api_key_here USE_MOCK_DATA=false -
Run development server
npm start
Navigate to
http://localhost:4200
# Development build
npm run build
# Production build
npm run build:prodThe application uses a build-time script (scripts/generate-env-config.js) to inject environment variables. This ensures:
- API keys are never exposed in source code
- Different configurations for development and production
- Support for Vercel environment variables
See README_ENV.md for detailed environment setup instructions.
Note: Screenshots and live demo links can be added here. The application features:
- Clean, modern interface with intuitive navigation
- Real-time AI proposal generation
- Professional PDF output with custom styling
- Responsive design across all devices
This repository is a public showcase of the project for portfolio and demonstration purposes. The actual source code, including:
- Complete implementation details
- API integration code
- Business logic and algorithms
- Full configuration files
- Production environment settings
...is maintained in a private repository for security and intellectual property protection.
This public repository serves as:
- A demonstration of technical capabilities
- A portfolio piece for potential employers
- Documentation of the project's architecture and features
- A reference for the technologies and patterns used
For inquiries about the full implementation or collaboration opportunities, please contact me directly.
- Lines of Code: ~5,000+ (TypeScript, HTML, CSS)
- Components: 10+ reusable components
- Services: 3 core business logic services
- Build Time: < 30 seconds
- Bundle Size: Optimized with lazy loading
- Performance: Lighthouse score 90+ (target)
- Template library for different proposal types
- Collaborative editing features
- Integration with CRM systems
- Advanced analytics and proposal tracking
- Email integration for direct proposal sending
- Custom branding options
- Multi-user support with authentication
Built with passion for creating efficient, user-friendly solutions that solve real business problems. This project demonstrates:
- Full-stack capabilities with modern frontend frameworks
- AI integration expertise with Google Gemini
- Problem-solving skills in complex PDF generation
- Best practices in Angular development
- Production-ready code with proper error handling and security
This project is for portfolio and demonstration purposes. All rights reserved.
For questions, collaboration opportunities, or to see the full implementation:
- Portfolio: [Your Portfolio URL]
- LinkedIn: [Your LinkedIn Profile]
- Email: [Your Email]
Built with β€οΈ using Angular, TypeScript, and Google Gemini AI