Skip to content

pedrocelso/go-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-task

CircleCI codecov

An basic REST service (tasks) written in GO.

There's an basic UI for this service at: https://github.com/pedrocelso/go-task-ui A basic UI for this will be made using a create-react-app boilerplate.

About the project

My main goal for this project is to learn how to write Go code to be used on AppEngine, using the cloud datastore. I'm trying to add new useful things to the project, and learning them, for example, how to use JWT middleware on gin. You shouldn't expect anything advanced, as I'm struggling to keep this as simple as possible. I hope this helps new go programmers to ger started to AppEngine, and to write basic REST services.

An generic task abstraction. Users can have unlimited tasks, each task can have unlimited incidents: An incident can be any kind of interation between the user and its task. It can be observations from a phone call, an email body, even an numeric workflow (not implemented). This should be the first step for complex projects, for instance a Follow-up backend, an BPMS backend, etc.

Milestones

  1. Create basic routes and handlers;
  2. Add basic CRUD operations for Users;
  3. Do whatever is needed to make it GAE-compatible;
  4. Move the database from MySQL to Google Datastore?;
  5. Add JWT authentication;
  6. Add an new Entity Task that will be assigned to a given User See Task Endpoints
  7. Add an new Entity Incident that will be assigned to a given Task See Incidents

Trivia

https://cloud.google.com/free/docs/always-free-usage-limits

Local Unit Testing for Go

https://cloud.google.com/appengine/docs/standard/go/tools/localunittesting/

AppEngine Test Package (aetest)

https://cloud.google.com/appengine/docs/standard/go/tools/localunittesting/reference aetest is no longer needed, with the go111 runtime, it is now possible to write GO on a more idiomatic way. Now there's an interface that is implemented by Google Datastore and is easily mocked.

Releases

No releases published

Packages

No packages published