Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.log
*.pid

# Node
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.env

# MacOS
.DS_Store

# Editor
.vscode/
.idea/
39 changes: 39 additions & 0 deletions backend/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import json
import os

app = FastAPI(title="VishwaGuru Backend")

# Allow CORS for frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # In production, replace with specific frontend URL
Comment thread
RohanExploit marked this conversation as resolved.
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)

@app.get("/")
def read_root():
return {"message": "VishwaGuru Backend is running"}

@app.get("/health")
def health_check():
return {"status": "ok"}

@app.get("/api/responsibility-map")
def get_responsibility_map():
# In a real app, this might read from the file or database
# For MVP, we can return the structure directly or read the file

# Assuming the data folder is at the root level relative to where backend is run
# Adjust path as necessary. If running from root, it is "data/responsibility_map.json"
file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data", "responsibility_map.json")

try:
with open(file_path, "r") as f:
data = json.load(f)
return data
except FileNotFoundError:
return {"error": "Data file not found"}
Comment thread
RohanExploit marked this conversation as resolved.
2 changes: 2 additions & 0 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
fastapi
uvicorn
26 changes: 26 additions & 0 deletions data/responsibility_map.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"road": {
"authority": "Municipal Corporation / PWD",
"description": "For city roads, it is the Municipal Corporation. For highways, it is PWD or NHAI."
},
"water": {
"authority": "Municipal Water Supply Dept / Jal Board",
"description": "Issues related to water supply, leakage, or quality."
},
"streetlight": {
"authority": "Municipal Corporation (Electrical Dept)",
"description": "Non-functional streetlights or new installation requests."
},
"garbage": {
"authority": "Municipal Corporation (Sanitation Dept)",
"description": "Uncollected garbage, lack of bins, or street cleaning."
},
"college_infra": {
"authority": "University / State Education Dept",
"description": "Issues like broken furniture, lack of fans/lights, or poor building condition."
},
"women_safety": {
"authority": "Local Police / Women Helpline (1091)",
"description": "Harassment, unsafe areas, or immediate threats."
}
}
24 changes: 24 additions & 0 deletions frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
16 changes: 16 additions & 0 deletions frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).

## Expanding the ESLint configuration

If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
29 changes: 29 additions & 0 deletions frontend/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{js,jsx}'],
extends: [
js.configs.recommended,
reactHooks.configs.flat.recommended,
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
rules: {
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
},
},
])
13 changes: 13 additions & 0 deletions frontend/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>frontend</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading