Status : desenvolvendo
O projeto SpotGeoAPI é uma API para um sistema de geografico, com usuarios, lugares geograficos e areas geograficas.
O projeto foi feito em node com typescript, usando PostgresSql com a extensão PostGis para trabalhar com os dados geograficos do projeto. Caso não conheça acesse POSTGIS
✔️ Users (./users/) ✔️ Places (./places/) ✔️ Areas (./areas/)
USERS:
- POST
(./users/login)
: Authenticar usuario.
PLACES:
-
GET
(./places/)
: Listar os lugares registrados. -
GET
(./places/:id)
: Listar o lugar especificado por id. -
GET
(./places/:id1/distanceto/:id2)
: Listar a distancia entre o lugar especificado por id1, com o lugar especificado por id2. -
GET
(./places/:idPlace/insideof/:idArea)
: Listar se o lugar especificado por idPlace, esta dentro de uma area especificada por idArea. -
POST
(./places/)
: Criar um lugar e persistir no banco. -
PUT
(./places/:id)
: Editar o lugar especifica por id. -
DELETE
(./places/:id)
: Deletar o lugar especificado por id.
AREAS
-
GET
(./areas/)
: Listar todas as areas registradas. -
GET
(./areas/:id)
: Listar a area especificada por id. -
GET
(./areas/:id/places)
: Listar todos os lugares que estão contidos na area especificada por id. -
POST
(./areas/)
: Criar uma area e persistir no banco. -
PUT
(./areas/:id)
Editar a area especificada por id. -
DELETE
(./areas/:id)
Deletar a area especificada por id.
SEARCH
- GET
(./search?radius=&latitude=&longitude=)
: Listar os lugares e areas que estão dentro do raio de RADIUS do centro, sendo o ponto definido com latitude de LATITUDE, e longitude de LONGITUDE.
- Clone o repositorio.
- Instale as dependencias:
npm install
- Crie um arquivo .env na raiz da aplicação e popule, seguindo o .env.example .
- Execute:
npm run build
- Rode o seguinte script para criar um banco de dados para aplicação:
npm run createdb
- Realiza a migração com:
npm run migrate
- A aplicação esta pronta para rodar:
- caso queira rodar, execute:
npm run start
- caso queira executar os testes:
npm run test:integration
Observação: Caso queira rodar uma segunda vez os testes, verifique em rodar npm run cleandb
, e rodar o migrate novamente.