Skip to content

osanchezroca/UOC-2024P-TFG-PROJECTE

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Plataforma de report d’esdeveniments en base a la geolocalització

Grau d’Enginyeria Informàtica | Serveis basats en localització i espais intel·ligents

View Demo

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

TFG Screen Shot

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.

(back to top)

Built With

  • Next
  • React
  • tailwindcss

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

  • npm
    npm install npm@latest -g

Installation

  1. Clone the repo
    git clone https://github.com/osanchezroca/UOC-2024P-TFG-PROJECTE.git
  2. Install NPM packages
    npm install
  3. 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=""
  4. Create and seed database
    npx prisma db push
    npx prisma db seed
    
  5. Start webserver
    npm run dev

Prisma push will create database structure, then seed command will fill database with demo data.

Database diagram

(back to top)

Roadmap

  • 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

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

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/

(back to top)

Contact

Oscar Sánchez Roca - osharo(at)uoc.edu

LinkedIn

Project Link: https://github.com/osanchezroca/UOC-2024P-TFG-PROJECTE

(back to top)

Acknowledgments

(back to top)