-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* added angular ui * - added backend configuration via file and env variables - changed ui from to angular based sass to based on css * - added ui to docker build - added more config - added small demo data set
- Loading branch information
Showing
289 changed files
with
75,094 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,3 +22,5 @@ bin | |
|
||
# Go workspace file | ||
go.work | ||
|
||
tmp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
{ | ||
// Use IntelliSense to learn about possible attributes. | ||
// Hover to view descriptions of existing attributes. | ||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||
"version": "0.2.0", | ||
"configurations": [ | ||
{ | ||
"name": "Launch reval Go Package", | ||
"type": "go", | ||
"request": "launch", | ||
"mode": "auto", | ||
"program": "cmd/reval/main.go", | ||
"args": [ | ||
"${workspaceFolder}/configs/debug/" | ||
] | ||
}, | ||
{ | ||
"name": "Launch mailtransformer Go Package", | ||
"type": "go", | ||
"request": "launch", | ||
"mode": "auto", | ||
"program": "cmd/mailtransformer/main.go" | ||
}, | ||
{ | ||
"type": "firefox", | ||
"request": "launch", | ||
"name": "Launch Angular", | ||
"url": "http://localhost:4200", | ||
"reAttach": true, | ||
"file": "${workspaceFolder}/ui/reval-web/src/index.html" | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# ignore local prebuild distributions and node_modules | ||
dist | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package main | ||
|
||
import ( | ||
"encoding/json" | ||
"fmt" | ||
"io" | ||
"os" | ||
"strings" | ||
|
||
"github.com/rherlt/reval/internal/api/evaluationapi" | ||
) | ||
|
||
type MailItem struct { | ||
RequestMail string `json:"requestMail"` | ||
MailResponse string `json:"mailResponse"` | ||
} | ||
|
||
func main() { | ||
|
||
// Open our jsonFile | ||
jsonFile, err := os.Open("../../tmp/output.json") | ||
// if we os.Open returns an error then handle it | ||
if err != nil { | ||
fmt.Println(err) | ||
} | ||
|
||
// defer the closing of our jsonFile so that we can parse it later on | ||
defer jsonFile.Close() | ||
|
||
// read our opened jsonFile as a byte array. | ||
bytes, _ := io.ReadAll(jsonFile) | ||
|
||
// we initialize our Users array | ||
var mails []MailItem | ||
|
||
// we unmarshal our byteArray which contains our | ||
// jsonFile's content into 'users' which we defined above | ||
json.Unmarshal(bytes, &mails) | ||
|
||
var transformedMails []evaluationapi.GetEvaluationResponse | ||
|
||
// we iterate through every user within our users array and | ||
// print out the user Type, their name, and their facebook url | ||
// as just an example | ||
for i := 0; i < len(mails); i++ { | ||
var currentMail = mails[i] | ||
transformedMails = append(transformedMails, evaluationapi.GetEvaluationResponse{ | ||
Id: int32(i), | ||
Request: evaluationapi.Message{ | ||
Body: GetStringAfterInBetween(currentMail.RequestMail, "Betreff: ", "\n\n"), | ||
From: "chatgpt/gpt-3.5-turbo", | ||
Subject: GetStringInBetween(currentMail.RequestMail, "Betreff: ", "\n"), | ||
}, | ||
Response: evaluationapi.Message{ | ||
Body: currentMail.MailResponse, | ||
From: "chatgpt/gpt-3.5-turbo", | ||
Subject: "", | ||
}, | ||
}) | ||
} | ||
|
||
outFile, _ := json.MarshalIndent(transformedMails, "", " ") | ||
|
||
_ = os.WriteFile("../../tmp/reval-transformed.json", outFile, 0644) | ||
} | ||
|
||
// GetStringInBetween Returns empty string if no start string found | ||
func GetStringInBetween(str string, start string, end string) (result string) { | ||
s := strings.Index(str, start) | ||
if s == -1 { | ||
return | ||
} | ||
s += len(start) | ||
e := strings.Index(str[s:], end) | ||
if e == -1 { | ||
return | ||
} | ||
fin := s + e | ||
return str[s:fin] | ||
} | ||
|
||
// GetStringInBetween Returns empty string if no start string found | ||
func GetStringAfterInBetween(str string, start string, end string) (result string) { | ||
s := strings.Index(str, start) | ||
if s == -1 { | ||
return str | ||
} | ||
s += len(start) | ||
e := strings.Index(str[s:], end) | ||
if e == -1 { | ||
return str | ||
} | ||
fin := s + e + len(end) | ||
return str[fin:] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,55 @@ | ||
package main | ||
|
||
import ( | ||
"log" | ||
"net/http" | ||
"os" | ||
|
||
"github.com/rherlt/reval/internal/api/evaluationapi" | ||
"github.com/rherlt/reval/internal/config" | ||
"github.com/rherlt/reval/internal/controller" | ||
|
||
"github.com/gin-contrib/cors" | ||
"github.com/gin-gonic/gin" | ||
) | ||
|
||
func main() { | ||
|
||
//load config path from command line or use "." (current application path) | ||
var configPath string = "." | ||
if len(os.Args) > 1 { | ||
configPath = os.Args[1:][0] | ||
} | ||
|
||
err := config.LoadConfig(configPath) | ||
if err != nil { | ||
log.Fatal("cannot load config:", err) | ||
} | ||
|
||
//todo replace with load from database | ||
controller.LoadDataFromFile() | ||
|
||
//setup gin webserver | ||
r := gin.Default() | ||
//TODO: remove for production builds. | ||
r.Use(cors.Default()) | ||
//TODO: https://github.com/deepmap/oapi-codegen/blob/master/examples/petstore-expanded/gin/petstore.go#L21C1-L48C1 | ||
|
||
r.GET("/openapi.json", controller.GetSwagger) | ||
r.NoRoute(func(c *gin.Context) { | ||
c.Redirect(http.StatusMovedPermanently, config.Current.Gin_Web_BaseUrl) | ||
}) | ||
|
||
//register folder for static web deployment | ||
r.Static("/ui/", config.Current.Gin_Web_Path) | ||
|
||
corsConfig := cors.DefaultConfig() | ||
corsConfig.AllowHeaders = append(corsConfig.AllowHeaders, config.Current.Gin_Cors_AdditionalAllowedHeaders...) | ||
corsConfig.AllowAllOrigins = config.Current.Gin_Cors_AllowAllOrigins | ||
r.Use(cors.New(corsConfig)) | ||
//TODO: https://github.com/deepmap/oapi-codegen/blob/master/examples/petstore-expanded/gin/petstore.go#L21C1-L48C1 | ||
r.GET("/swagger/openapi.json", controller.GetSwagger) | ||
|
||
//register HTTP handlers | ||
si := new(controller.EvaluationApiServerInterface) | ||
evaluationapi.RegisterHandlersWithOptions(r, si, si.GetServerOptions()) | ||
|
||
r.Run(":8080") | ||
//run webserver | ||
r.Run(config.Current.Gin_WebServerAddress) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# default configuration for debugging reval | ||
DATAPATH=../../data/reval-transformed.json | ||
# Gin Webserver Settings | ||
GIN_CORS_ALLOWALLORIGINS=true | ||
GIN_CORS_ADDITIONALALLOWEDHEADERS=Authorization | ||
GIN_WEB_PATH=../../ui/reval-web/dist/reval-web/ | ||
GIN_WEBSERVERADDRESS=:8080 | ||
GIN_API_BASEURL=/api/ | ||
GIN_WEB_BASEURL=/ui/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# default configuration for debugging reval | ||
DATAPATH=./data/reval-transformed.json | ||
# Gin Webserver Settings | ||
GIN_CORS_ALLOWALLORIGINS=true | ||
GIN_CORS_ADDITIONALALLOWEDHEADERS=Authorization | ||
GIN_WEB_PATH=./www/ | ||
GIN_WEBSERVERADDRESS=:8080 | ||
GIN_API_BASEURL=/api/ | ||
GIN_WEB_BASEURL=/ui/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
[ | ||
{ | ||
"evaluations": { | ||
"numNegative": 0, | ||
"numNeutral": 0, | ||
"numPositive": 0 | ||
}, | ||
"id": 0, | ||
"request": { | ||
"body": "Sehr geehrte Damen und Herren,\nich wollte nur kurz nachfragen, ob meine Rechnung eingegangen ist bzw. ob die Abbuchung von meinem Konto erfolgreich war. Über eine kurze Rückmeldung wäre ich sehr dankbar.\nMit freundlichen Grüßen\n[Name des Kunden]", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "" | ||
}, | ||
"response": { | ||
"body": "Sehr geehrter Herr/Frau [Name des Kunden],\n\nvielen Dank für Ihre Anfrage. Gerne teile ich Ihnen mit, dass Ihre Rechnung erfolgreich bei uns eingegangen ist. Die Abbuchung von Ihrem Konto war ebenfalls erfolgreich.\n\nFür weitere Fragen oder Informationen stehe ich Ihnen gerne zur Verfügung.\n\nMit freundlichen Grüßen\n[Dein Name]\nKundenbetreuer Energieversorgung", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "" | ||
} | ||
}, | ||
{ | ||
"evaluations": { | ||
"numNegative": 0, | ||
"numNeutral": 0, | ||
"numPositive": 0 | ||
}, | ||
"id": 1, | ||
"request": { | ||
"body": "Sehr geehrte Damen und Herren,\n\nich möchte mich heute bei Ihnen bedanken und ein großes Lob aussprechen. Ich bin sehr zufrieden mit den Verbrauchsinformationen, die Sie mir zur Verfügung stellen. Der Umfang der Informationen ist genau richtig und gibt mir einen guten Überblick über meinen Energieverbrauch.\n\nBesonders gefällt mir, dass ich jederzeit online auf meine Verbrauchsdaten zugreifen kann. So kann ich meinen Verbrauch im Blick behalten und gegebenenfalls Anpassungen vornehmen, um Energie zu sparen.\n\nIch finde es toll, dass Sie sich so umfassend um Ihre Kunden kümmern und ihnen wertvolle Informationen zur Verfügung stellen. Das gibt mir das Gefühl, dass ich bei Ihnen in guten Händen bin.\n\nVielen Dank für Ihre tolle Arbeit!\n\nMit freundlichen Grüßen,\n\n[Name des Kunden]", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "" | ||
}, | ||
"response": { | ||
"body": "Sehr geehrter Herr/Frau [Name des Kunden],\n\nvielen Dank für Ihre freundliche Mail und das positive Feedback! Es freut uns sehr zu hören, dass Sie mit unseren Verbrauchsinformationen zufrieden sind und einen guten Überblick über Ihren Energieverbrauch erhalten.\n\nUnser Ziel ist es, unseren Kunden wertvolle Informationen zur Verfügung zu stellen und ihnen dabei zu helfen, ihren Energieverbrauch im Blick zu behalten und gegebenenfalls Anpassungen vorzunehmen, um Energie zu sparen. Es freut uns, dass Ihnen besonders die Möglichkeit gefällt, jederzeit online auf Ihre Verbrauchsdaten zugreifen zu können.\n\nWir legen großen Wert darauf, unsere Kunden umfassend zu betreuen und ihnen einen exzellenten Service zu bieten. Ihr positives Feedback bestärkt uns in unserer Arbeit und wir werden weiterhin alles daran setzen, Ihnen den bestmöglichen Service zu bieten.\n\nNochmals vielen Dank für Ihr Lob! Sollten Sie weitere Fragen oder Anliegen haben, stehen wir Ihnen jederzeit gerne zur Verfügung.\n\nMit freundlichen Grüßen,\n\n[Dein Name]\nKundenbetreuer Energieversorgung", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "" | ||
} | ||
}, | ||
{ | ||
"evaluations": { | ||
"numNegative": 0, | ||
"numNeutral": 0, | ||
"numPositive": 0 | ||
}, | ||
"id": 2, | ||
"request": { | ||
"body": "Sehr geehrte Damen und Herren,\n\nich möchte mich heute einfach mal bei Ihnen bedanken! Ich bin Kunde Ihres Energieversorgungsunternehmens und ich bin wirklich beeindruckt von den Verbrauchsinformationen, die Sie mir zur Verfügung stellen.\n\nBesonders lobend möchte ich hervorheben, dass Sie sehr umfassende Informationen zu meinem Strom- und Gasverbrauch bereitstellen. Besonders nützlich finde ich auch die Vergleichsmöglichkeiten mit anderen Haushalten und die Möglichkeit, meine Verbräuche in verschiedenen Zeiträumen zu analysieren.\n\nDank Ihrer Informationen kann ich mein eigenes Verbrauchsverhalten besser verstehen und gezielt daran arbeiten, meinen Energieverbrauch zu optimieren. Auch die Möglichkeit, Informationen und Tipps zu Energiesparmaßnahmen zu erhalten, finde ich sehr nützlich.\n\nIch möchte mich nochmals ausdrücklich bei Ihnen dafür bedanken, dass Sie Ihren Kunden so umfassende und informative Verbrauchsinformationen zur Verfügung stellen. Das zeigt mir, dass Sie sich wirklich um das Wohl Ihrer Kunden kümmern.\n\nMit freundlichen Grüßen\n\n[Name des Kunden]", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "Lob für umfassende und informative Verbrauchsinformationen" | ||
}, | ||
"response": { | ||
"body": "Sehr geehrter Herr/Frau [Name des Kunden],\n\nvielen Dank für Ihre freundliche E-Mail und das positive Feedback zu unseren Verbrauchsinformationen. Es freut uns sehr zu hören, dass Sie mit unserem Service zufrieden sind.\n\nUnser Ziel ist es, unseren Kunden nicht nur eine zuverlässige Energieversorgung zu bieten, sondern auch umfassende Informationen zur Verfügung zu stellen, um Ihnen bei der Optimierung Ihres Energieverbrauchs zu unterstützen. Es ist großartig zu hören, dass Sie unsere Vergleichsmöglichkeiten und Analysefunktionen als nützlich empfinden.\n\nWir sind stets bestrebt, unseren Kundenservice zu verbessern und Ihre Bedürfnisse zu erfüllen. Daher sind wir auch sehr dankbar für Ihr Feedback, da es uns hilft, unsere Dienstleistungen weiter zu optimieren.\n\nFalls Sie weitere Fragen oder Anregungen haben, zögern Sie bitte nicht, uns zu kontaktieren. Wir stehen Ihnen gerne zur Verfügung.\n\nWir bedanken uns nochmals herzlich für Ihr positives Feedback und wünschen Ihnen weiterhin eine angenehme Zusammenarbeit mit uns.\n\nMit freundlichen Grüßen\n\n[Dein Name]\nKundenbetreuer Energieversorgungsunternehmen", | ||
"date": "", | ||
"from": "chatgpt/gpt-3.5-turbo", | ||
"subject": "" | ||
} | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,6 +3,7 @@ services: | |
build: | ||
context: . | ||
dockerfile: build/reval/Dockerfile | ||
|
||
image: local/reval:latest | ||
ports: | ||
- "8080:8080" |
Oops, something went wrong.