Workforce and meter management platform for modern field operations.
Assign Meter is a multi-platform application designed to simplify field operations, meter management, assignments, workforce coordination, and operational data management.
The platform provides dedicated applications for web, mobile, and backend services, allowing administrative and field workflows to operate through a shared platform.
Assign Meter
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
Web App Mobile App Backend
Next.js Expo / RN Node.js
│ │ │
└───────────────┼───────────────┘
│
▼
Platform Services
│
┌─────────┴─────────┐
│ │
MongoDB AWS S3
The web application provides the primary browser-based interface for management and administrative workflows.
Technology
- Next.js
- React
- Tailwind CSS
- React-based UI components
- Maps
- Real-time communication
Repository:
The mobile application provides a field-oriented interface for users who work with the platform from mobile devices.
Technology
- Expo
- React Native
- Expo Router
- NativeWind
- React Native Paper
- Maps
- Camera
- Location
- Secure Storage
Repository:
The backend provides the central API and business logic shared by the platform clients.
Technology
- Node.js
- Express
- MongoDB
- Mongoose
- JWT
- Role-Based Access Control
- AWS S3
- Server-Sent Events
- Web Push
Repository:
Assign Meter is designed around field-operation workflows including:
- User and workforce management
- Meter management
- Meter assignments
- Operational tracking
- Role-based access control
- Authentication
- Location-aware workflows
- Map-based interfaces
- File and spreadsheet processing
- Image capture and upload
- Real-time application updates
- Browser and mobile notifications
- Reporting and operational data
The platform follows a client-server architecture.
┌───────────────────────┐
│ Web Client │
│ Next.js │
└───────────┬───────────┘
│
│
┌───────────▼───────────┐
│ Backend API │
│ Node.js / Express │
└───────────┬───────────┘
│
├──────────────► MongoDB
│
├──────────────► AWS S3
│
├──────────────► Notifications
│
└──────────────► Real-Time Events
│
┌───────────▼───────────┐
│ Mobile Client │
│ Expo / React │
│ Native │
└───────────────────────┘
The web and mobile applications act as clients of the central backend.
Security-sensitive operations, authorization, validation, and business rules are enforced by the backend.
Assign Meter uses authenticated access and role-based permissions.
The general security model is:
User
│
▼
Authentication
│
▼
Identity
│
▼
Role
│
▼
Permission
│
▼
Resource
│
▼
Action
Frontend and mobile applications provide the user experience around permissions, while the backend remains responsible for enforcing authorization.
The platform supports real-time application updates.
The general flow is:
Backend Event
│
▼
Real-Time Connection
│
▼
Web / Mobile Client
│
▼
Application State
│
▼
Updated Interface
This allows operational information to be updated without requiring users to manually refresh the application.
The platform integrates with object storage for file-related workflows.
A preferred architecture for large uploads is:
Client
│
│ request upload authorization
▼
Backend
│
│ signed upload URL
▼
Client
│
│ direct upload
▼
AWS S3
This avoids unnecessarily routing large files through the application server.
The organization currently contains the primary Assign Meter applications:
Assign-Meter/
│
├── Assign-Meter
│ └── Mobile Application
│
├── Assign-Meter-Web
│ └── Web Application
│
└── Assign-Meter-Backend
└── Backend API
The repositories may evolve as the platform grows.
Next.js
React
Tailwind CSS
Sass
Radix UI
Leaflet
Google Maps
Expo
React Native
Expo Router
NativeWind
React Native Paper
React Native Maps
Expo Camera
Expo Location
Expo Secure Store
Node.js
Express
MongoDB
Mongoose
JWT
AWS S3
Server-Sent Events
Web Push
Assign Meter is developed with a focus on:
- Practical field workflows
- Reliable data management
- Secure authentication
- Server-side authorization
- Maintainable application architecture
- Cross-platform functionality
- Real-time operational updates
- Scalable file handling
- Clear separation between clients and backend services
Each application has its own development environment and setup instructions.
Start with the relevant repository:
Follow the README inside each repository for installation, configuration, development, and deployment instructions.
Assign Meter is an actively developed platform.
The architecture and applications continue to evolve as new field-operation requirements, integrations, workflows, and platform capabilities are introduced.
Contributions, improvements, bug reports, and technical discussions are welcome.
Before contributing:
- Read the relevant repository README.
- Understand the existing architecture.
- Create a dedicated branch.
- Keep changes focused.
- Run linting and relevant tests.
- Verify the production build where applicable.
- Submit a clear pull request.
License information is defined at the individual repository level until a unified platform license is established.
One platform. Multiple clients. One operational system.