GuardianReport is a web application designed to allow users to submit anonymous reports of incidents, ensuring their safety and privacy. The application leverages modern web technologies to provide a seamless and secure user experience.
- Anonymous Reporting: Submit reports without revealing your identity
- Image Upload and Analysis: Upload and automatically analyze incident-related images
- Location Input: Specify exact incident location using interactive maps
- Dynamic Form Wizard: Easy-to-follow multi-step report submission process
- Responsive Design: Seamless experience across desktop and mobile devices
- Secure Data Handling: End-to-end encryption and privacy-focused design
-
Frontend
- Next.js 14 (React framework)
- React 18
- Tailwind CSS
- Mapbox for location services
-
Backend
- Prisma ORM
- PostgreSQL database
- NextAuth for authentication
-
AI/ML
- Google Generative AI for image analysis
- Node.js 18.x or higher
- npm 9.x or higher
- PostgreSQL database
- Clone the repository
git clone https://github.com/MohitGoyal09/GuardianReport.git
cd GuardianReport
- Install dependencies
npm install
- Configure environment variables
Create a
.env
file with:
NEXT_PUBLIC_MAPBOX_API_KEY=your-mapbox-key
DATABASE_URL=postgresql:your-database-url
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="<http://localhost:3000/api/auth>"
GEMINI_API_KEY=your-gemini-api-key
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=your-mapbox-access-api-key
- Initialize database
npx prisma generate
npx prisma db push
- Start development server
npm run dev
- Access application at http://localhost:3000
-
POST /api/reports
- Create new report- Requires: incident details, location, images (optional)
- Returns: report ID and status
-
GET /api/reports
- Fetch reports (admin only)- Requires: Admin authentication
- Returns: List of reports
POST /api/analyze
- Analyze uploaded images- Requires: Image file(s)
- Returns: Analysis results
- Fork the repository
- Create feature branch (
git checkout -b feature/YourFeature
) - Commit changes (
git commit -m 'Add YourFeature'
) - Push to branch (
git push origin feature/YourFeature
) - Open Pull Request
This project is licensed under the MIT License - see LICENSE file for details.
- All data is encrypted at rest and in transit
- No personally identifiable information is stored
- Regular security audits and updates
- Compliance with data protection regulations