Commit 417b23df authored by shreyansh's avatar shreyansh

heroku app added

parent fed21072
{
"projects": {
"default": "softlab-ba722"
}
}
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": false,
".write": false
}
}
\ No newline at end of file
{
"database": {
"rules": "database.rules.json"
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
}
}
{
"indexes": [],
"fieldOverrides": []
}
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
\ No newline at end of file
......@@ -4,9 +4,23 @@ from starlette.applications import Starlette
from starlette.templating import Jinja2Templates
from starlette.responses import JSONResponse, PlainTextResponse
from prediction import predict
import pyrebase
import uvicorn
import json
import os
config = {
"apiKey": "AIzaSyBrnRxGfzyWvLZu9XMUnbZTPpu8NxHBRE0",
"authDomain": "softlab-ba722.firebaseapp.com",
"databaseURL": "https://softlab-ba722.firebaseio.com",
"projectId": "softlab-ba722",
"storageBucket": "softlab-ba722.appspot.com",
"messagingSenderId": "210803257141",
"appId": "1:210803257141:web:f2fcb4e8d166ca9bc4a67c",
"measurementId": "G-L85J7NJJZK"
}
firebase = pyrebase.initialize_app(config)
auth = firebase.auth()
scopes = [
"https://www.googleapis.com/auth/userinfo.email",
......@@ -14,33 +28,61 @@ scopes = [
]
templates = Jinja2Templates(directory='templates')
app = Starlette()
app = Starlette(debug=True)
credentials = service_account.Credentials.from_service_account_file("./serviceKey.json", scopes=scopes)
authed_session = AuthorizedSession(credentials)
@app.route('/register',methods=["POST"])
async def registration(request):
body = await request.json()
email, password = body['email'],body['password']
json = {
"email": email,
"password": password,
"returnSecureToken": True
}
message = "Success, Thanks for your envaluable contribution!"
response = authed_session.post("https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser",None,json)
print(response)
if response.status_code!=200:
message = "Oops some error occured please try after some time."
return PlainTextResponse(message)
@app.route('/auth',methods=["POST"])
async def basic(request):
body = await request.form()
email = body['email']
password = body['password']
try:
auth.sign_in_with_email_and_password(email, password)
return templates.TemplateResponse('index.html', {'request': request})
except:
message = 'Please check your credentials'
return templates.TemplateResponse('login.html', {'request': request, 's':message})
@app.route('/registration',methods=["POST"])
async def firebase_register(request):
body = await request.form()
email = body['email']
password = body['pass1']
confirm = body['pass2']
if password!=confirm:
message = 'Registration unsuccessful'
return templates.TemplateResponse('register.html', {'request': request, 's':message})
try:
auth.create_user_with_email_and_password(email, password)
message = 'Registration successful'
except:
message = 'Registration unsuccessful'
return templates.TemplateResponse('register.html', {'request': request, 's':message})
return templates.TemplateResponse('login.html', {'request': request, 's':message})
# @app.route('/register',methods=["POST"])
# async def registration(request):
# body = await request.json()
# email, password = body['email'],body['password']
# json = {
# "email": email,
# "password": password,
# "returnSecureToken": True
# }
# message = "Success, Thanks for your envaluable contribution!"
# response = authed_session.post("https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser",None,json)
# print(response)
# if response.status_code!=200:
# message = "Oops some error occured please try after some time."
# return PlainTextResponse(message)
@app.route('/')
async def homepage(request):
print('fmakmf')
return templates.TemplateResponse('index.html', {'request': request})
async def login(request):
return templates.TemplateResponse('login.html', {'request': request})
@app.route('/contribute')
async def contrbPage(request):
......@@ -73,8 +115,7 @@ async def evaluate(request):
print(response)
if response.status_code!=200:
message = "Oops some error occured please try after some time."
return PlainTextResponse(message)
return templates.TemplateResponse('thanks.html', {'request': request, 'score':score, 'message':message, 'essay':essay})
if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000))
uvicorn.run(app, host='0.0.0.0', port=port)
\ No newline at end of file
uvicorn.run(app, host='0.0.0.0', port=8050)
\ No newline at end of file
......@@ -57,5 +57,14 @@
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="/__/firebase/7.5.0/firebase-app.js"></script>
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script src="/__/firebase/7.5.0/firebase-analytics.js"></script>
<!-- Initialize Firebase -->
<script src="/__/firebase/init.js"></script>
</body>
</html>
\ No newline at end of file
......@@ -38,7 +38,7 @@
<hr class="my-4">
<p>
<form action="" method="post">
<form action="/auth" method="post">
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email" name="email">
......
......@@ -38,7 +38,7 @@
<hr class="my-4">
<p>
<form action="" method="post">
<form action="/registration" method="post">
<div class="form-group">
<label for="username">Email address</label>
<input type="email" name="email" class="form-control" id="username" aria-describedby="emailHelp" placeholder="Enter email">
......
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<div class="container">
{% if s %}
<div class="alert alert-success">
<h2>{{s}}</h2>
</div>
{% endif %}
{% if us %}
<div class="alert alert-danger">
<h2>{{us}}</h2>
</div>
{% endif %}
<!-- <form action="/auth" method="post">
<h2>Please sign in</h2>
<label for="inputEmail">Email address</label>
<input type="email" id="inputEmail" name="name" placeholder="Email address" required autofocus>
<label for="inputPassword">Password</label>
<input type="password" id="inputPassword" name="pass" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form> -->
<form action="/registration" method="post">
<h2>Please sign up</h2>
<label for="inputEmail">Email address</label>
<input type="email" id="inputEmail" name="name" placeholder="Email address" required autofocus>
<label for="inputPassword">Password</label>
<input type="password" id="inputPassword" name="pass" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Register</button>
</form>
</div>
<footer></footer>
</body>
</html>
\ No newline at end of file
......@@ -35,7 +35,7 @@
<div class="jumbotron">
<!-- <h1 class="display-4 text-center" style="font-size: 7em;">{{score}}/60</h1> -->
<!-- <br /> -->
<p class="lead">We have successfully registered your contribution</p>
<p class="lead">{{message}}</p>
<hr class="my-4">
<p class="display-4 text-center">{{essay}}</p>
<hr class="my-4">
......
......@@ -31,16 +31,21 @@
</nav>
<br />
<div class="jumbotron">
<table>
{% for essay in essayResponse %}
{% for e, s in essay.items() %}
<h1>Essay: {{e}}</h1>
<h2>Score: {{s}}</h2>
<tr>
<td>{{essay.essay}}</td><td>{{essay.score}}</td>
</tr>
{% endfor %}
</table>
<!-- <div class="jumbotron">
{% for %}
<h1>Essay: {{essay['essay']}}</h1>
<h2>Score: {{essay['score']}}</h2>
<hr/>
{% endfor %}
{% endfor %}
</div>
</div> -->
</div>
<!-- Optional JavaScript -->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment