Grau d’Enginyeria Informàtica | Serveis basats en localització i espais intel·ligents
View Demo
Table of Contents
The final thesis is based on creating a tool that uses current geolocation technologies. For this reason I propose to develop a system that allows reporting events through a web application obtaining the device’s browser geolocation where is running the application.
This application shows the reported events in a panel that can be visualized and managed, in order to know the instant status in a geographical region.
It's designed using a multi tenant structure.
It contains two frontends:
- Public access page: used to report events in a tenant
- Dashboard: used to manage reported events in a tenant
Each tenant has separated data, only report status typification is shared between tenants.
This software uses a user identification creating an identifier for each navigator instead using IP matching. For each unidentified navigator it creates a random string that it's stored into navigator local storage.
This identifier can be provided using an external token, embedded using an URL query.
To get a local copy up and running follow these simple example steps.
- npm
npm install npm@latest -g
- Clone the repo
git clone https://github.com/osanchezroca/UOC-2024P-TFG-PROJECTE.git
- Install NPM packages
npm install
- Set environment vars
POSTGRES_PRISMA_URL="postgres://postgres:password@host:port/database?schema=public&sslmode=require&pgbouncer=true&connect_timeout=15" POSTGRES_URL_NON_POOLING="postgres://postgres:password@host:port/database?schema=public&sslmode=require" BLOB_READ_WRITE_TOKEN=""
- Create and seed database
npx prisma db push npx prisma db seed
- Start webserver
npm run dev
Prisma push will create database structure, then seed command will fill database with demo data.
- Public base
- Report list
- Report detail
- Report create
- Report attachment management
- Dashboard base
- Add report to map (pointer)
- Report detail
- Access only with admin key
- Report modify
- Site config management
- Testing
- Check what if location does not work or is not enabled
- Check admin fence
- Report propvided by known persons
- Extra improvements:
- Use NextResponse instead Response
- Create end-to-end test
- Use websockets to refresh live
- Multi-language Support
- Catalan
- Spanish
- English
- French
- Tenant management screen (CRUD)
- Map pointer use status color
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Plataforma de report d’esdeveniments en base a la geolocalització © 2024 by Oscar Sánchez Roca is licensed under CC BY-NC-SA 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/
Oscar Sánchez Roca - osharo(at)uoc.edu
Project Link: https://github.com/osanchezroca/UOC-2024P-TFG-PROJECTE