AnonWitness is an AI-Powered Eye-Witness & Incident reporting platform that enables users to anonymously submit eye-witness updates and exact location on crimes and emergency situations.
- Next.js
- TypeScript
- NextAuth for Authentication
- Neon PostgreSQL database
- Prisma
- React Hook Form
- Tailwind CSS
- Shadcn-ui
- GeminiAI
- Bcrypt for Password Encryption
-
Anonymous Reporting: Report Incidents without revealing Your Identity.
-
Precise Location: Share accurate incident location by just the tap of a button.
-
Live Photo Upload: Capture and Share Images directly from the scene.
-
AI Genrated Captions: AI scans images, and generates precise incident descriptions and captions.
-
Progress Tracking: Monitor submitted reports and their progress.
-
Secure Communication: Two-way secure communication channel with law enforcement.
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Cloning the Repository
https://github.com/dev-hunterr/anon-witness.git
cd anon-witnessInstallation
# Install dependencies
npm install
# Set up the database
npx prisma generate
npx prisma db push
# Start the development server
npm run devEnvironment Setup
Create a .env file in the root directory with the following variables:
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
Deployment
The application can be easily deployed on Vercel:
- Push your code to a Git repository
- Connect your repository to Vercel
- Configure the environment variables
- Deploy!