freqtable

command module
v0.0.0-...-2805226 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2020 License: MIT Imports: 10 Imported by: 0

README

freqtable

GoDoc Go Report Card

freqtable is a Frequency Table builder, which handles the extraction and counting of words (dictionary words) from Go source code.

Use Cases

freqtable use cases diagram

Input & Output for extractions

freqtable exposes a REST API to create frequency tables. It receives the name of the repository and extract the word count. This word count is stored in a database and can then be summarized to create a global frequency table.

The input for the process is a GitHub's public Golang source code repository name. Since we don't use authentication to communicate to GitHub's API, we only use public available repositories. The response indicates if it could be processed or not, but it won't return the resulting pairs (key-value).

Class/Package diagram

freqtable class diagram

WordCounter class diagram

The most complex repository implementation is the WordCounter implementation, so a diagram is included to show structs, interfaces and their relationships.

wordcount class diagram

Database schema

database schema

Technical Debt

  • Complete missing use cases.
  • Improve logging and error handling through the Clean Architecture rings.
  • Improve container initialization, perhaps using factories and allowing select underlying storages at initialization time.
  • Capture logs and send them to ElasticSearch (and make them available through Kibana).
  • Use metrics collector to check the app status.

License

See the LICENSE file for license rights and limitations (MIT).

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
adapter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL