Skip to content

Commit 6578793

Browse files
Merge pull request #6 from deadlycoder07/deploy
Deploy
2 parents 4a42946 + 27ad0e8 commit 6578793

File tree

13 files changed

+171
-140
lines changed

13 files changed

+171
-140
lines changed

.env

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
DATABASE_NAME=screencast
2-
DATABASE_USER=screencastadmin@screencast2020
3-
DATABASE_PASSWORD=screencast2020!
4-
DATABASE_HOST=screencast2020.postgres.database.azure.com
1+
DATABASE_NAME=screencast
2+
DATABASE_USER=screencastadmin@screencast2020
3+
DATABASE_PASSWORD=screencast2020!
4+
DATABASE_HOST=screencast2020.postgres.database.azure.com
55
DATABASE_PORT=5432

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,8 @@ __pycache__
55
myvenv
66
db.sqlite3
77
/static
8-
.DS_Store
8+
.DS_Store
9+
# Elastic Beanstalk Files
10+
.elasticbeanstalk/*
11+
!.elasticbeanstalk/*.cfg.yml
12+
!.elasticbeanstalk/*.global.yml

Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM amazon/aws-eb-python:3.4.2-onbuild-3.5.1
2+
3+
# Expose port
4+
EXPOSE 8080
5+
ENV PYTHONUNBUFFERED 1
6+
RUN python -m pip install --upgrade pip
7+
RUN mkdir /var/app
8+
WORKDIR /var/app
9+
COPY requirements.txt /code/
10+
RUN pip install -r requirements.txt
11+
COPY . /var/app/.
12+
EXPOSE 8000

Dockerrun.aws.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"AWSEBDockerrunVersion": "5",
3+
"Volumes": [
4+
{
5+
"ContainerDirectory": "/var/app",
6+
"HostDirectory": "/var/app",
7+
"ContainerPort": "8080"
8+
}
9+
],
10+
"Logging": "/var/app/eb_log"
11+
}

Procfile

Lines changed: 0 additions & 2 deletions
This file was deleted.

api/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def validate(self,data):
3535
"result":result
3636
}
3737

38-
38+
3939
class SocialSerializer(serializers.Serializer):
4040
"""
4141
Serializer which accepts an OAuth2 access token and provider.

api/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@
1818
path('refresh',TokenRefreshView.as_view(),name='token_refresh'),
1919
path('question',views.getquestion.as_view(),name='question api'),
2020
path('facebooklogin',views.facebooklogin.as_view(),name='facebooklogin'),
21+
path('status',views.configstatus,name='quiz_status'),
2122
]

api/views.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@
1919
from social_django.utils import load_strategy, load_backend
2020
from social_core.backends.oauth import BaseOAuth2
2121
from social_core.exceptions import MissingBackend, AuthTokenError, AuthForbidden
22+
import time
2223
# Create your views here.
23-
24+
import requests as r
2425

2526

2627
@api_view(['GET'])
@@ -52,6 +53,23 @@ def get(self,request):
5253
}
5354
return Response(response)
5455

56+
import pytz
57+
utc=pytz.UTC
58+
@api_view(['GET'])
59+
def configstatus(request):
60+
configs=config.objects.all()
61+
if configs:
62+
response={
63+
"current_day":configs[0].current_day,
64+
"start_time":configs[0].quiz_start.replace(tzinfo=utc),
65+
"end_time":configs[0].quiz_endtime.replace(tzinfo=utc)
66+
}
67+
return Response(response)
68+
response={
69+
"status":404,
70+
"message":"no confings founnd"
71+
}
72+
return Response(response)
5573
class Answer(APIView):
5674
permission_classes=(IsAuthenticated,)
5775

@@ -120,8 +138,10 @@ def post(self, request):
120138
class facebooklogin(APIView):
121139

122140
def post(self,request):
141+
print(request.data)
123142
accesstoken=request.data.get('accesstoken')
124143
expiration_time=request.data.get('expiration_time')
144+
print(expiration_time)
125145
userID=request.data.get('userID')
126146
if(int(expiration_time) < int(time.time())):
127147
content= {"status": 404}
@@ -138,7 +158,7 @@ def post(self,request):
138158
username= idInfo['name'],
139159
image= idInfo['picture']['data']['url'],
140160
try:
141-
user = User.objects.get(email=data['email'])
161+
user = User.objects.get(email=email)
142162
except User.DoesNotExist:
143163
user = User()
144164
user.username = username

docker-compose.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: '3'
2+
3+
services:
4+
db:
5+
image: postgres
6+
environment:
7+
- DJANGO_SETTINGS_MODULE=settings.production
8+
- RDS_DB_NAME=postgres
9+
- RDS_USERNAME=postgres
10+
- RDS_PASSWORD='postgres'
11+
- RDS_HOSTNAME=db
12+
- RDS_PORT=5432
13+
web:
14+
build: .
15+
command: gunicorn screencast.wsgi:application --bind 0.0.0.0:8000
16+
volumes:
17+
- .:/var/app
18+
ports:
19+
- "8000:8000"
20+
depends_on:
21+
- db
22+
- migration
23+
24+
migration:
25+
build: .
26+
command: python manage.py migrate --noinput
27+
depends_on:
28+
- db

quiz/migrations/0001_initial.py

Lines changed: 58 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,58 @@
1-
# Generated by Django 3.0.5 on 2020-06-19 07:29
2-
3-
from django.conf import settings
4-
from django.db import migrations, models
5-
import django.db.models.deletion
6-
7-
8-
class Migration(migrations.Migration):
9-
10-
initial = True
11-
12-
dependencies = [
13-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14-
]
15-
16-
operations = [
17-
migrations.CreateModel(
18-
name='config',
19-
fields=[
20-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21-
('current_day', models.IntegerField()),
22-
('q_no', models.IntegerField()),
23-
('quiz_start', models.DateTimeField()),
24-
('quiz_endtime', models.DateTimeField()),
25-
],
26-
),
27-
migrations.CreateModel(
28-
name='Question',
29-
fields=[
30-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
31-
('question', models.CharField(max_length=550)),
32-
('day', models.IntegerField()),
33-
('question_no', models.IntegerField()),
34-
('answer', models.CharField(max_length=100)),
35-
('audio', models.FileField(blank=True, upload_to='media/audios')),
36-
('image', models.ImageField(blank=True, upload_to='media/images')),
37-
('hint', models.CharField(default='na', max_length=555)),
38-
],
39-
options={
40-
'ordering': ['day', 'question_no'],
41-
},
42-
),
43-
migrations.CreateModel(
44-
name='UserScore',
45-
fields=[
46-
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
47-
('name', models.CharField(max_length=55, null=True)),
48-
('score', models.IntegerField(default=0)),
49-
('rank', models.IntegerField(null=True)),
50-
('current_question', models.IntegerField()),
51-
('last_modified', models.DateTimeField(auto_now=True)),
52-
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
53-
],
54-
options={
55-
'ordering': ['-score', 'last_modified'],
56-
},
57-
),
58-
]
1+
# Generated by Django 3.0.5 on 2020-06-19 07:29
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
initial = True
11+
12+
dependencies = [
13+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
14+
]
15+
16+
operations = [
17+
migrations.CreateModel(
18+
name='config',
19+
fields=[
20+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
21+
('current_day', models.IntegerField()),
22+
('q_no', models.IntegerField()),
23+
('quiz_start', models.DateTimeField()),
24+
('quiz_endtime', models.DateTimeField()),
25+
],
26+
),
27+
migrations.CreateModel(
28+
name='Question',
29+
fields=[
30+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
31+
('question', models.CharField(max_length=550)),
32+
('day', models.IntegerField()),
33+
('question_no', models.IntegerField()),
34+
('answer', models.CharField(max_length=100)),
35+
('audio', models.FileField(blank=True, upload_to='media/audios')),
36+
('image', models.ImageField(blank=True, upload_to='media/images')),
37+
('hint', models.CharField(default='na', max_length=555)),
38+
],
39+
options={
40+
'ordering': ['day', 'question_no'],
41+
},
42+
),
43+
migrations.CreateModel(
44+
name='UserScore',
45+
fields=[
46+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
47+
('name', models.CharField(max_length=55, null=True)),
48+
('score', models.IntegerField(default=0)),
49+
('rank', models.IntegerField(null=True)),
50+
('current_question', models.IntegerField()),
51+
('last_modified', models.DateTimeField(auto_now=True)),
52+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
53+
],
54+
options={
55+
'ordering': ['-score', 'last_modified'],
56+
},
57+
),
58+
]

0 commit comments

Comments
 (0)