This project is a service (previously known as module) for a larger project. The main objectives of this API is to provide a REST interface for managing customer and project information.
This is an on-going project with potential for more collaborations if successful.
No front-end code is required.
3 structs need to be created:
Customer has two properties:
Name - string, indexed
Type - string, non-indexed
Notes - string, non-indexed
Staff has two properties:
Name - string, non-indexed
Role - string, non-indexed
Numbers is a map of string to string values where the key is the actual number, and the value is the type (e.g. mobile, office, etc.)
Project has the following properties:
Title - string, non-indexed
Type - string, indexed
CustomerKey - Datastore Key, non-indexed, ancestor of Project Key
Personnel - Staff, non-indexed
Start - [url removed, login to view], indexed
End - [url removed, login to view], indexed
Details - map[string]string, non-indexed
Requirements - map[string]string, non-indexed
Logs - map[[url removed, login to view]]string, non-indexed
The following URL endpoints are needed for the API:
Lists all customers sorted by name alphabetically.
Gets information of a customer.
Creates a customer.
Updates the customer.
Removes the customer.
Lists all projects of a customer. Accepts a required query parameter “customer” to return projects under that customer, and an optional “type” parameter to return projects of a certain type.
Gets information of a project.
Creates a project.
Updates the project.
Deletes the project.
This project is to be written with Go and will be deployed on Google App Engine. The storage backend has to be App Engine Datastore (as mentioned, this is part of a larger project so database access is shared).
The project uses Git with Bitbucket for version control. Further detailed instructions can be found in the [url removed, login to view] file in the project repository.