A Next.js application that visualizes public incident reports and related geospatial data for Paris. The project uses open datasets (notably the "DansMaRue" dataset and GeoJSON layers provided by the City of Paris) to build interactive maps, charts, and aggregated views tailored to this course project.
- Interactive map with incident overlays and heatmaps
- Aggregated views by arrondissement, quartier, and street (voie)
- Time and category filters, top-10 charts, and exportable API endpoints
- Server-side API routes serving processed data and caching logic
- Framework: Next.js (App Router) with TypeScript
- Styling: Tailwind CSS
- State & UI: React components in
src/components - Database: MongoDB (local or managed)
- Package manager:
pnpm
Prerequisites:
- Node.js 20 or newer
- pnpm (install globally with
npm install -g pnpm) - MongoDB (local or remote)
Setup:
- Copy the example environment file:
cp .env.example .envand fill the values. - Install dependencies:
pnpm install - Start the development server:
pnpm run dev
Open the app at: http://localhost:3000
Use .env.example as a reference. Typical variables include database connection strings and any API keys required for external data. Do not commit secrets.
Build and start:
pnpm build
pnpm startOr deploy to a platform that supports Next.js apps.
This project exposes serverless API routes under src/app/api/ that return aggregated data for UI components and external consumption. Examples include endpoints for arrondissement, quartier, voie, and declaration.
src/app/— Next.js app, pages, and API routessrc/components/— React components and UI primitivessrc/modules/— domain models and typessrc/services/— API wrappers and data fetching logicsrc/libs/database— database connection utilities
Explore the codebase to find specific handlers and utilities.
We welcome contributions from team members. Suggested workflow:
- Create an issue describing the bug or feature.
- Create a branch named
dev-<issue-number>. - Open a pull request referencing the issue (e.g.,
resolves #<issue-number>). - Use
Squash and mergewhen approved.
Please follow existing code style and run tests (if any) before submitting.
- This repository is part of an academic project and consumes open public datasets. Ensure you respect any usage terms from the data providers.
For questions about the codebase, contact the project maintainers or the course instructors.