gesiel / gocollector

Collecting user web surfing data from web sites with a JS lib and a Go back end!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Coverage Status

Go Collector

A Go (Rest API) + Vue (Web Client) experiment.

This project uses

How it works

This project collects users web surfing data from web sites configured with its js client. A Go Rest API receives all the user navigation data and a Vue web client shows all collected data.

Packages

  1. Both access and subscriber are domain specific logic. These packages depend only on abstractions. All dependencies are injected with DI and IC.
  2. Package controllers stands for the web api classes.
  3. databases stores all database gateways implementations. It's basic Mongo queries.
  4. All Go dependencies are in the vendor folder.
  5. The webclient folder stores the Vue web client. Running npm run build in this folder updates the static folder content with a minified version of the web client.
  6. The JS lib stay on the jsclientfolder. It collects and sends information to the backend.

Running

Atentition: You need a Mongo DB up and running to proceed.

  1. Run the tests with
go test ./...
  1. Run the app with
PORT=8080 MONGODB_URI=localhost go run main.go
  1. Open your browser on http://localhost:8080/ to list all collected data. If was no collected data, surf a little bit on http://localhost:8080/examples and fill up the contact page.

A version of this tool is up and running on heroku. Just visit https://gocollector.herokuapp.com/examples and https://gocollector.herokuapp.com/.

To run the JS lib tests, see here.

About

Collecting user web surfing data from web sites with a JS lib and a Go back end!

License:MIT License


Languages

Language:Go 45.6%Language:HTML 37.5%Language:JavaScript 12.8%Language:Vue 4.1%