Connecting senior citizens (55+) in urban areas through activities, communities, and local events.
Backend: Java 21, Spring Boot 3.2.5, MySQL, Spring Data JPA, Lombok, Firebase Admin SDK
Frontend: React 18, Vite, Tailwind CSS 3, React Router 6, Axios, React Hook Form, Firebase Client SDK
Auth: Firebase Phone OTP
- Java 21
- Maven 3.9+
- Node.js 18+ & npm
- MySQL 8+
- Firebase project with Phone Auth enabled
CREATE DATABASE sahasathi;- Enable Phone Auth in Firebase Console
- Generate a service account JSON (Project Settings → Service Accounts)
- Save it as
backend/src/main/resources/firebase-service-account.json - Copy your Firebase web app config for the frontend
cd backend
# Set env vars (optional — defaults work for dev)
# Or edit src/main/resources/application-dev.properties
mvn spring-boot:run -Dspring.profiles.active=devServer starts at http://localhost:8080.
Swagger UI: http://localhost:8080/swagger-ui.html
Create frontend/.env:
VITE_FIREBASE_API_KEY=your_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project
VITE_FIREBASE_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_idcd frontend
npm install
npm run devApp starts at http://localhost:5173.
| Feature | Description |
|---|---|
| Auth | Phone OTP via Firebase |
| Profile | Interests, picture upload, completeness score |
| Nearby Users | Find users in same city with mutual interests |
| Activities | Create, join, leave, edit, cancel activities |
| Communities | Create, join, leave, manage communities |
| Join Requests | Request & approve membership for private groups |
| Age Verification | Aadhaar-based age verification (55+ only) |
| Notifications | Bell icon, unread count, mark read |
| Search | Global search across activities, communities, users |
| Event Calendar | Month view with activity listing per day |
| Reports & Feedback | Report content, rate activities with star ratings |
| Chat | 1-on-1 messaging with conversations |
backend/
src/main/java/com/sahasathi/
config/ # Firebase, Swagger, security filter
controller/ # REST endpoints
dto/ # Request/response DTOs
exception/ # Custom exceptions + global handler
model/ # JPA entities
repository/ # Spring Data repositories
service/ # Business logic
src/main/resources/
application.yml
application-dev.properties
frontend/
src/
components/ # Reusable UI components
context/ # AuthContext
hooks/ # useAuth
layouts/ # MainLayout
pages/ # Route pages
services/ # Axios API client
Base URL: /api/v1
POST /auth/register— Register or loginGET/PUT /users/{id}/profile— User profileGET /users/{id}/nearby— Nearby usersCRUD /activities— ActivitiesPOST /activities/{id}/join|leave— Join/leave activityCRUD /communities— CommunitiesPOST /communities/{id}/join|leave— Join/leave communityPOST /join-requests— Create join requestPUT /join-requests/{id}/approve|reject— Handle requestPOST /users/{id}/verify-age— Age verificationGET /notifications— List notificationsGET /search?q=keyword— Global searchGET /activities/calendar— Calendar month viewPOST /reports— Report contentPOST /activities/{id}/feedback— Rate activityGET/POST /chat/conversations— ChatGET/POST /chat/conversations/{id}/messages— Messages