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 ...@@ -4,9 +4,23 @@ from starlette.applications import Starlette
from starlette.templating import Jinja2Templates from starlette.templating import Jinja2Templates
from starlette.responses import JSONResponse, PlainTextResponse from starlette.responses import JSONResponse, PlainTextResponse
from prediction import predict from prediction import predict
import pyrebase
import uvicorn import uvicorn
import json 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 = [ scopes = [
"https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.email",
...@@ -14,33 +28,61 @@ scopes = [ ...@@ -14,33 +28,61 @@ scopes = [
] ]
templates = Jinja2Templates(directory='templates') templates = Jinja2Templates(directory='templates')
app = Starlette() app = Starlette(debug=True)
credentials = service_account.Credentials.from_service_account_file("./serviceKey.json", scopes=scopes) credentials = service_account.Credentials.from_service_account_file("./serviceKey.json", scopes=scopes)
authed_session = AuthorizedSession(credentials) authed_session = AuthorizedSession(credentials)
@app.route('/register',methods=["POST"]) @app.route('/auth',methods=["POST"])
async def registration(request): async def basic(request):
body = await request.json() body = await request.form()
email, password = body['email'],body['password'] email = body['email']
json = { password = body['password']
"email": email, try:
"password": password, auth.sign_in_with_email_and_password(email, password)
"returnSecureToken": True return templates.TemplateResponse('index.html', {'request': request})
} except:
message = "Success, Thanks for your envaluable contribution!" message = 'Please check your credentials'
response = authed_session.post("https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser",None,json) return templates.TemplateResponse('login.html', {'request': request, 's':message})
print(response)
if response.status_code!=200: @app.route('/registration',methods=["POST"])
message = "Oops some error occured please try after some time." async def firebase_register(request):
return PlainTextResponse(message) 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('/') @app.route('/')
async def homepage(request): async def login(request):
print('fmakmf') return templates.TemplateResponse('login.html', {'request': request})
return templates.TemplateResponse('index.html', {'request': request})
@app.route('/contribute') @app.route('/contribute')
async def contrbPage(request): async def contrbPage(request):
...@@ -73,8 +115,7 @@ async def evaluate(request): ...@@ -73,8 +115,7 @@ async def evaluate(request):
print(response) print(response)
if response.status_code!=200: if response.status_code!=200:
message = "Oops some error occured please try after some time." 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__': if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000)) uvicorn.run(app, host='0.0.0.0', port=8050)
uvicorn.run(app, host='0.0.0.0', port=port) \ No newline at end of file
\ No newline at end of file
...@@ -57,5 +57,14 @@ ...@@ -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://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://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> <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> </body>
</html> </html>
\ No newline at end of file
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<hr class="my-4"> <hr class="my-4">
<p> <p>
<form action="" method="post"> <form action="/auth" method="post">
<div class="form-group"> <div class="form-group">
<label for="exampleInputEmail1">Email address</label> <label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email" name="email"> <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email" name="email">
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<hr class="my-4"> <hr class="my-4">
<p> <p>
<form action="" method="post"> <form action="/registration" method="post">
<div class="form-group"> <div class="form-group">
<label for="username">Email address</label> <label for="username">Email address</label>
<input type="email" name="email" class="form-control" id="username" aria-describedby="emailHelp" placeholder="Enter email"> <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 @@ ...@@ -35,7 +35,7 @@
<div class="jumbotron"> <div class="jumbotron">
<!-- <h1 class="display-4 text-center" style="font-size: 7em;">{{score}}/60</h1> --> <!-- <h1 class="display-4 text-center" style="font-size: 7em;">{{score}}/60</h1> -->
<!-- <br /> --> <!-- <br /> -->
<p class="lead">We have successfully registered your contribution</p> <p class="lead">{{message}}</p>
<hr class="my-4"> <hr class="my-4">
<p class="display-4 text-center">{{essay}}</p> <p class="display-4 text-center">{{essay}}</p>
<hr class="my-4"> <hr class="my-4">
......
...@@ -31,16 +31,21 @@ ...@@ -31,16 +31,21 @@
</nav> </nav>
<br /> <br />
<table>
<div class="jumbotron"> {% for essay in essayResponse %}
{% for essay in essayResponse %} <tr>
{% for e, s in essay.items() %} <td>{{essay.essay}}</td><td>{{essay.score}}</td>
<h1>Essay: {{e}}</h1> </tr>
<h2>Score: {{s}}</h2> {% endfor %}
</table>
<!-- <div class="jumbotron">
{% for %}
<h1>Essay: {{essay['essay']}}</h1>
<h2>Score: {{essay['score']}}</h2>
<hr/> <hr/>
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
</div> </div> -->
</div> </div>
<!-- Optional JavaScript --> <!-- 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