According to the French gun legislator, 20 000 firearms are seized each year in France, 15 to 20% of which are misidentified or unidentified. This leads to errors in the legal classification of weapons and has the following consequences:
- A lack of criminal prosecution, or conversely, unjustified prosecution
- Over-solicitation of firearms experts
- Erroneous sales of weapons subject to authorization by civilian gunsmiths
Project summary
Develop an app for the law enforcement forces where they just need to take a photo of a firearm to obtain an identification result.
History of the product:
- 2021/09/13: the Direction of Numeric of French Ministy of the Interior hires a developer and a data scientist to develop a Minimum Viable Product for 10 months.
- 2022/03: first prototype in production (basegun.fr)
- 2022/09: tests with real users from police and gendarmerie
- 2024/02: solution deployed to all professional mobile phones of gendarmerie forces in France on https://basegun.interieur.gouv.fr
Dependancies :
See also Debugging section for all the env variables needed for the website to work fully operationally.
# install in dev mode
make build# run
make up
# stop
make downUse pnpm install on frontend folder
Use pnpm run start for start the website with Vite
Use pre-commit run --all-files for linting on frontend and backend folders
-
If the interface of the website does not appear on
http://localhost:5173, there is an issue with frontend. In terminal, rundocker logs basegun-frontend -
If the interface shows up properly but there is a bug at image upload, there is an issue with the backend. Try to find error log:
- In terminal, run
docker logs basegun-backend - If you cannot access terminal or don't see anything, go to
http://localhost:5000/logsto see latest logs.
- In terminal, run
-
Beside frontend and backend services, we use some containers in dev which simulate some services provided by our cloud provider: s3 storage, mail server... See our infrastructure repo for more info about app architecture.
- Set your User Agent to 'SAID'
- Go to
http://localhost:5173/expert-contact. This will redirect you to a login page where you have two options :
- If you want to test the police path, use
policeas username andpasswordas password. - For the gendarmerie path, use
gendarmerieas username andpasswordas password. (see keyclock conf)
- Update tag in Makefile
make tagThis will create a draft release in github (to validate) and some docker image packages with this tag.
If you made a tagging error, run
make untag. This will delete the tag locally and in the remote.
Due to its usage of python library Ultralytics, BaseGun uses copyleft GNU Affero General Public License v3.0 (AGPL-3.0).