A modern web application built with Nuxt 3 for creating and managing cadastral and route surveys. AutoPlan provides a comprehensive platform for surveyors to handle coordinate systems, elevation data, and generate professional survey plans through an intuitive multi-step workflow.
- Multi-step Plan Creation: Comprehensive workflow covering BasicDetails → Coordinates → Drawing → Elevation → Computation → Parcels → Embellishment → Report
- Plan Types: Support for Cadastral, Route, Topographic, and Layout surveys
- Coordinate Management: Advanced coordinate transfer system between components
- Interactive Maps: Leaflet integration for coordinate visualization and plotting
- Elevation Data: Handle and process elevation information for surveys
- Spreadsheet Support: Import coordinates from CSV and XLSX files
- CAD Export: Export drawings to DXF for use in CAD software
- Dual Authentication: Email/OTP and Google OAuth integration
- Profile Management: User profile setup and management
- Session Management: Secure token-based authentication with automatic session handling
- Dark/Light Theme: System preference detection with manual toggle
- Responsive Design: Mobile-first approach with comprehensive breakpoint support
- Rich Text Editing: Integrated Quill editor for detailed survey reports
- Toast Notifications: Real-time feedback system for user actions
- Frontend: Nuxt 3, Vue 3, TypeScript
- Styling: Tailwind CSS, Nuxt UI
- Maps: Leaflet via @nuxtjs/leaflet
- Authentication: Custom implementation with Google OAuth
- Icons: Remix Icon (@remixicon/vue)
- Rich Text: Vue Quill (@vueup/vue-quill)
- HTTP Client: Axios with custom interceptors
- Node.js 18+
- npm, pnpm, yarn, or bun
- Backend API server (running on port 8000 by default)
- Clone the repository
git clone <repository-url>
cd fyp- Install dependencies
npm install
# or
pnpm install
# or
yarn install
# or
bun install- Environment Configuration
# Copy environment template
cp .env.example .env
# Edit .env with your configuration
BASE_URL=http://localhost:8000
GOOGLE_CLIENT_ID=your-google-client-id.apps.googleusercontent.com- Start Development Server
npm run dev
# or
pnpm dev
# or
yarn dev
# or
bun run devThe application will be available at http://localhost:4000 (note: not the default 3000)
| Variable | Description | Required |
|---|---|---|
BASE_URL |
Backend API base URL | Yes |
GOOGLE_CLIENT_ID |
Google OAuth Client ID | Optional* |
*Required for Google authentication feature
- Go to Google Cloud Console
- Create or select a project
- Enable Google Identity Services
- Create OAuth 2.0 credentials
- Add authorized origins:
http://localhost:4000(dev) and your production domain - Copy Client ID to your
.envfile
For detailed setup instructions, see GOOGLE_AUTH_SETUP.md
Supported import formats:
- CSV files
- XLSX spreadsheet files
- TXT coordinate exports
Supported export formats:
- PDF reports
- DXF drawings (for CAD workflows)
- Map images (PNG/JPEG)
- Coordinate tables (CSV/XLSX)
app/
├── components/ # Vue components
│ ├── plan/steps/ # Survey plan step components
│ └── GoogleSignInButton.vue
├── composables/ # Vue composables
│ ├── useCoordinateTransfer.ts
│ └── useGoogleAuth.ts
├── layouts/ # Nuxt layouts
├── middleware/ # Route middleware
│ └── auth.ts
├── pages/ # Application pages
│ ├── project/[id]/ # Project-specific pages
│ └── login.vue
├── plugins/ # Nuxt plugins
│ ├── axios.ts # API interceptors
│ └── google-auth.client.ts
└── types/ # TypeScript definitions
└── planTypes.ts
- User enters email
- OTP sent to email
- User enters OTP
- Tokens stored in cookies
- Redirect to dashboard/profile setup
- User clicks "Continue with Google"
- Google OAuth popup
- JWT token sent to backend
- Backend verifies token and returns app tokens
- Same cookie storage and redirect flow
The application follows a structured survey creation process:
- BasicDetails: Plan name, type, and basic information
- Coordinates: Import and manage survey coordinates
- Drawing: Visual representation and plotting
- Elevation: Elevation data input and processing
- Computation: Mathematical calculations and processing
- Parcels: Parcel definition and management
- Embellishment: Final touches and annotations
- Report: Generate final survey reports
# Build for production
npm run build
# Preview production build locally
npm run preview- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and documentation:
- Check the Google Auth Setup Guide
- Review Copilot Instructions for development patterns
- Open an issue for bug reports or feature requests
Built with ❤️ using Nuxt 3 and modern web technologies.