This project simplifies the contract generation and signing process through a multi-step form integrated with backend services. It eliminates the need for manual paperwork and lengthy email exchanges by enabling users to fill out, preview, and sign contracts directly on the platform.
Multi-step form
Key Features:
Dynamic multi-step form with conditional logic based on user input.
Real-time data saving and restoration for incomplete forms across sessions using LocalStorage.
Automated PDF generation and live preview of the document.
Digital signature collection and final contract submission.
Unique Value Proposition:
Streamlines the contract process by combining form filling, document generation, and signing into a single, user-friendly interface, saving significant time and effort.
Project Timeline:
Development: 1 week
🛠️ Technical Stack
Frontend:
React Vite
TailwindCSS for styling
ShadcnUI for component library
Zustand for state management
React Hook Form for validation
Backend:
Node.js with Express
Prisma with PostgreSQL for database management
DevOps:
Docker for containerization
Netlify for deployment
💡 Technical Challenges & Solutions
Challenge 1: Ensuring data persistence across sessions for a long form.
Solution: Used Zustand for state management combined with LocalStorage to save progress and allow users to resume incomplete forms.
Challenge 2: Dynamic PDF generation and live preview.
Solution: Implemented a backend service to overlay user inputs on a PDF template and used WebSockets to send the generated PDF URL back to the frontend for preview.
Challenge 3: Preventing performance issues in large forms with multiple states.
Solution: Utilized efficient state selectors in Zustand and ensured that React only re-renders components dependent on specific state changes.