Overview
The Indigenous Communities Spatial Viewer (ICSV) is a full-stack geospatial web application developed for Silvacom Ltd. to visualize and analyze spatial data from Indigenous communities across Alberta. As the lead full-stack developer, I built an Angular-based frontend with interactive ArcGIS maps and a Node.js/Express backend with optimized PostgreSQL data pipelines.
The application serves as a critical tool for Indigenous communities, government agencies, and stakeholders to access, visualize, and analyze spatial data including land use, resources, infrastructure, and cultural sites across Alberta.
The Challenge
Indigenous communities needed a centralized platform to visualize complex spatial data from multiple sources. The challenge was aggregating data from disparate systems, presenting it through an intuitive interface, and ensuring performance with large datasets while maintaining data security and access controls.
My Approach
I architected and built a full-stack solution with three core components:
- Angular Frontend: Built with ArcGIS JS SDK for interactive mapping with custom layer controls, filtering tools, and data query interfaces
- RESTful API: Node.js/Express backend serving geospatial data with optimized query performance
- Data Pipeline: SQL-based ETL processes aggregating data from multiple sources with caching strategies for performance
- AWS Infrastructure: Deployed on AWS (S3, EC2, CloudFront) with CI/CD pipelines for automated deployment
- AI-Assisted Development: Leveraged Claude Code and Cursor to accelerate feature development and code refactoring
Key Features
- Interactive Mapping: ArcGIS JS SDK integration with custom layer controls, toggles, and spatial query tools
- Custom Filtering: Advanced filtering interface allowing users to query and display specific data subsets
- Data Query Interface: User-friendly tools for searching and analyzing spatial attributes
- Optimized Data Serving: Caching strategies and query optimization for fast data retrieval
- Multi-Source Integration: ETL pipelines aggregating data from multiple PostgreSQL sources
- Secure Access: Role-based access controls for sensitive Indigenous community data
Technical Highlights
The frontend leverages Angular's component architecture with RxJS for reactive state management. ArcGIS JS SDK powers the interactive mapping features with custom widgets for layer control and data filtering. The UI is fully responsive and optimized for desktop workflows.
The backend RESTful API is built with Node.js and Express, serving geospatial data from PostgreSQL with PostGIS extensions. I implemented SQL-based data pipelines that aggregate information from multiple sources, with Redis caching for frequently accessed datasets to reduce database load and improve response times.
The application is deployed on AWS infrastructure using S3 for data storage, EC2 for hosting, and CloudFront CDN for global content delivery. I established CI/CD pipelines for automated testing and deployment, ensuring reliable and fast iteration cycles.
Impact & Results
The ICSV application successfully provides Indigenous communities and stakeholders across Alberta with a powerful tool for visualizing and analyzing spatial data. The optimized data pipelines and caching strategies enable fast queries even with large datasets, while the intuitive interface makes complex geospatial data accessible to non-technical users.
The CI/CD pipeline reduced deployment time significantly, allowing for rapid iteration and feature releases. The use of AI-assisted development tools like Claude Code and Cursor accelerated development velocity, particularly during code refactoring and feature implementation phases.
Key Takeaways
This project deepened my expertise in geospatial web development and full-stack architecture. Working with ArcGIS JS SDK taught me advanced mapping techniques and performance optimization strategies for rendering large spatial datasets. I gained valuable experience designing and implementing ETL pipelines, and learned how to effectively leverage AI development tools to accelerate feature development while maintaining code quality.