A development sandbox application built with Svelte (frontend) and Express (backend) for testing and learning about Conga Sign's eSignature APIs.
npm install
Start both the frontend and backend development servers:
npm run dev
This will start:
The frontend is configured to proxy API requests to the backend automatically.
When developing locally, you might need a tunnel to the internet for API callbacks:
# Install ngrok
npm install -g ngrok
# Expose your backend to the internet
ngrok http 3000
# Or with a reserved domain:
ngrok http --domain your-domain.ngrok-free.app 3000
Use the provided HTTPS URL as your callback URL in the Config page.
Note: This is only needed for local development. In cloud environments like Replit, the application will be publicly accessible without tunneling.
Run unit tests:
npm test
Run end-to-end tests:
npm run test:e2e
This project follows specific testing principles:
Focus on Happy Path: Tests should only verify correct behavior under normal, expected conditions. Do not write tests for error handling or edge cases.
Avoid Granular Tests: Tests should focus on meaningful functionality rather than implementation details. Keep tests simple and maintainable.
All Tests Must Pass: Before committing any code, ensure that all tests pass successfully. Run tests frequently during development.
Build the application for production deployment:
npm run build:all
Start the production server:
npm start
├── docs/ # Documentation files
├── public/ # Static assets
├── src/
│ ├── backend/ # Express backend
│ │ ├── routes/ # API routes
│ │ └── services/ # Business logic and data access
│ └── frontend/ # Svelte frontend
│ ├── components/ # Reusable UI components
│ ├── lib/ # Frontend utilities
│ └── pages/ # Page components
└── tests/ # Test files
├── unit/ # Unit tests
└── e2e/ # End-to-end tests
See the docs
folder for more detailed documentation:
To quickly reset the application to a clean state:
This will clear all configuration and transaction data, allowing you to start fresh.
To quickly populate the application with sample transactions for testing:
This will create several sample transactions with different statuses and configurations for demonstration purposes.
This project is proprietary and not for public distribution.