|
|
|
from flask import Flask, render_template, request, flash, g |
|
from TextSummarizationFeature import summarize, getTextSumContents, insertTextSumRow |
|
from BreakdownFeature import breakdown, getBreakdownContents, insertBreakdownRow |
|
from TranslationFeature import translate_text, switch, getTranslatedContents, insertTranslationRow |
|
from GenerationFeature import generate, getTextGenContents, insertTextGenRow |
|
|
|
app = Flask(__name__) |
|
app.secret_key = 'refineverseAdmin' |
|
|
|
|
|
@app.route('/') |
|
def index(): |
|
return render_template('RefineverseDashboardUI.html') |
|
|
|
|
|
@app.route('/text_summarization', methods=["POST", "GET"]) |
|
def text_summarization(): |
|
if request.method == "POST": |
|
try: |
|
|
|
Entered_story = request.form["input_text"] |
|
|
|
|
|
summarizedStory = summarize(Entered_story) |
|
|
|
flash("Your user story has been summarized!") |
|
|
|
|
|
insertTextSumRow(Entered_story, summarizedStory) |
|
|
|
|
|
|
|
|
|
return render_template('TextSummarizationUI.html', summarizedStory=summarizedStory) |
|
|
|
except ValueError as e: |
|
if str(e) == "Empty input!": |
|
flash("The input text cannot be empty! Please enter a user story.", 'error') |
|
return render_template('TextSummarizationUI.html') |
|
elif str(e) == "Incorrect format!": |
|
flash("Incorrect user story format! Please enter in the right format.", 'error') |
|
return render_template('TextSummarizationUI.html') |
|
elif str(e) == "Invalid length!": |
|
flash("Your inputted user story is too short to summarize. Please enter a longer story!", 'error') |
|
return render_template('TextSummarizationUI.html') |
|
else: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('TextSummarizationUI.html') |
|
|
|
|
|
except KeyError: |
|
flash("Please enter a valid user story!") |
|
return render_template('TextSummarizationUI.html') |
|
|
|
|
|
except Exception as e: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('TextSummarizationUI.html') |
|
|
|
else: |
|
return render_template('TextSummarizationUI.html') |
|
|
|
|
|
@app.route('/summarization_table') |
|
def summarization_table(): |
|
|
|
summarizations = getTextSumContents() |
|
|
|
|
|
return render_template('SummarizationTable.html', summarizations=summarizations) |
|
|
|
|
|
@app.route("/project_breakdown", methods=["POST", "GET"]) |
|
def project_breakdown(): |
|
if request.method == "POST": |
|
try: |
|
|
|
userStory = request.form["user-story-text"] |
|
|
|
|
|
processedLabel = breakdown(userStory) |
|
|
|
|
|
flash("Your user story has been allocated as a " + processedLabel + " task!") |
|
|
|
insertBreakdownRow(userStory, processedLabel) |
|
rows = getBreakdownContents() |
|
|
|
return render_template('ProjectBreakdownUI.html', rows=rows) |
|
|
|
|
|
|
|
except KeyError: |
|
flash("Please enter a valid user story!", 'error') |
|
rows = getBreakdownContents() |
|
return render_template('ProjectBreakdownUI.html', row=rows) |
|
|
|
|
|
except Exception as e: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
rows = getBreakdownContents() |
|
return render_template('ProjectBreakdownUI.html', rows=rows) |
|
|
|
else: |
|
|
|
rows = getBreakdownContents() |
|
return render_template('ProjectBreakdownUI.html', rows=rows) |
|
|
|
|
|
@app.route('/language_translation', methods=["POST", "GET"]) |
|
def language_translation(): |
|
if request.method == "POST": |
|
try: |
|
|
|
input_text = request.form['input'] |
|
|
|
|
|
source_language = request.form['source_language'] |
|
|
|
|
|
target_language = request.form['target_language'] |
|
|
|
|
|
translatedStory = translate_text(input_text, source_language, target_language) |
|
|
|
|
|
flash("Your user story has been translated to " + switch(target_language) + " !") |
|
|
|
|
|
insertTranslationRow(input_text, translatedStory) |
|
|
|
|
|
|
|
|
|
return render_template('LanguageTranslationUI.html', input_text=input_text, translatedStory=translatedStory) |
|
|
|
|
|
except ValueError as e: |
|
if str(e) == "Empty input!": |
|
flash("The input text cannot be empty! Please enter a user story.", 'error') |
|
return render_template('LanguageTranslationUI.html') |
|
elif str(e) == "Incorrect format!": |
|
flash("Unable to translate your user story. Please enter in the correct format.", 'error') |
|
return render_template('LanguageTranslationUI.html') |
|
else: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('LanguageTranslationUI.html') |
|
|
|
except Exception as e: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('LanguageTranslationUI.html') |
|
|
|
else: |
|
return render_template('LanguageTranslationUI.html') |
|
|
|
|
|
@app.route('/translation_table') |
|
def translation_data(): |
|
|
|
translations = getTranslatedContents() |
|
|
|
|
|
return render_template('TranslationTable.html', translations=translations) |
|
|
|
|
|
@app.route('/text_generation', methods=["POST", "GET"]) |
|
def text_generation(): |
|
if request.method == "POST": |
|
try: |
|
|
|
Entered_story = request.form["input_text"] |
|
|
|
|
|
generatedStory = generate(Entered_story) |
|
|
|
flash("Your user story has been generated!") |
|
|
|
|
|
insertTextGenRow(Entered_story, generatedStory) |
|
|
|
|
|
|
|
|
|
return render_template('TextGenerationUI.html', generatedStory=generatedStory) |
|
|
|
except ValueError as e: |
|
if str(e) == "Empty input!": |
|
flash("The input text cannot be empty! Please enter a user story.", 'error') |
|
return render_template('TextGenerationUI.html') |
|
elif str(e) == "Incorrect format!": |
|
flash("Incorrect user story format! Please enter in the right format.", 'error') |
|
return render_template('TextGenerationUI.html') |
|
else: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('TextGenerationUI.html') |
|
|
|
|
|
except KeyError: |
|
flash("Please enter a valid user story!") |
|
return render_template('TextGenerationUI.html') |
|
|
|
|
|
except Exception as e: |
|
flash("An error of type '{}' occurred: {}".format(type(e).__name__, str(e)), 'error') |
|
return render_template('TextGenerationUI.html') |
|
|
|
else: |
|
return render_template('TextGenerationUI.html') |
|
|
|
|
|
@app.route('/generation_table') |
|
def generation_table(): |
|
|
|
generations = getTextGenContents() |
|
|
|
|
|
return render_template('GenerationTable.html', generations=generations) |
|
|
|
|
|
|
|
@app.teardown_appcontext |
|
def close_connection(exception): |
|
db = getattr(g, '_database', None) |
|
if db is not None: |
|
db.close() |
|
|
|
|
|
if __name__ == '__main__': |
|
app.run(host="0.0.0.0", port=7860) |
|
|