How mysociety-team/development works
MySociety is a society-management application for residents, committee members, and administrators. Users authenticate, select or join a society, then use its resident and committee workflows: maintenance billing and payment, finance records, meetings, announcements, complaints, and contacts. The React client sends feature requests through a shared API client to Express routes and controllers; controllers delegate domain operations to services, with MongoDB-backed models. Notifications and subscriptions provide supporting capabilities. README documentation is limited to authentication routes, so feature-level wiring is based on the sampled controllers and the listed module structure.
Main entry points: index.js API route registry · maintenance.service.js Domain services · router.jsx Page router · apiClient.js HTTP API client
Components 26
Web client
- React application
client/src/App.jsx - Page router
client/src/app/router.jsx - HTTP API client
client/src/lib/apiClient.js - Sign in and register
client/src/modules/auth/pages/LoginPage.jsx - Society selection
client/src/modules/societies/pages/SocietiesPage.jsx - Maintenance screens
client/src/modules/maintenance/pages/MaintenancePage.jsx - Finance screens
client/src/modules/finance/pages/FinancePage.jsx - Meeting screens
client/src/modules/meetings/pages/MeetingsPage.jsx - Community screens
client/src/modules/announcements/pages/AnnouncementsPage.jsx
API runtime
- Express application
server/src/app.js - API route registry
server/src/routes/index.js - Domain services
server/src/modules/maintenance/maintenance.service.js - Domain models
server/src/models/Society.js
Society operations
- Society membership
server/src/modules/societies/society.controller.js - Bills and payments
server/src/modules/maintenance/maintenance.controller.js - Society finance
server/src/modules/finance/finance.controller.js
Resident services
- Meetings and attendance
server/src/modules/meetings/meeting.controller.js - Announcements
server/src/modules/announcements/announcement.controller.js - Complaints
server/src/modules/complaints/complaint.controller.js - Society contacts
server/src/modules/contacts/contact.controller.js - Notifications
server/src/modules/notifications/notification.controller.js
Identity and billing
- Authentication
server/src/modules/auth/auth.controller.js - Subscriptions
server/src/modules/subscriptions/subscription.controller.js
Other components
- Resident or committee
- MongoDB
- Razorpay
Connections 39
- Resident or committee → React application: uses
- React application → Page router: renders
- Page router → Sign in and register: routes
- Page router → Society selection: routes
- Page router → Maintenance screens: routes
- Page router → Finance screens: routes
- Page router → Meeting screens: routes
- Page router → Community screens: routes
- Sign in and register → HTTP API client: requests
- Society selection → HTTP API client: requests
- Maintenance screens → HTTP API client: requests
- Finance screens → HTTP API client: requests
- Meeting screens → HTTP API client: requests
- Community screens → HTTP API client: requests
- HTTP API client → Express application: HTTP requests
- Express application → API route registry: dispatches
- API route registry → Authentication: dispatches
- API route registry → Society membership: dispatches
- API route registry → Bills and payments: dispatches
- API route registry → Society finance: dispatches
- API route registry → Meetings and attendance: dispatches
- API route registry → Announcements: dispatches
- API route registry → Complaints: dispatches
- API route registry → Society contacts: dispatches
- API route registry → Notifications: dispatches
- API route registry → Subscriptions: dispatches
- Authentication → Domain models: reads and writes
- Society membership → Domain services: calls
- Bills and payments → Domain services: calls
- Society finance → Domain services: calls
- Meetings and attendance → Domain services: calls
- Announcements → Domain services: calls
- Complaints → Domain services: calls
- Society contacts → Domain services: calls
- Notifications → Domain services: calls
- Subscriptions → Domain services: calls
- Domain services → Domain models: uses
- Domain models → MongoDB: persists
- Domain services → Razorpay: payment integration