Skip to content

Commit 93a547b

Browse files
Merge pull request #5 from deadlycoder07/deploy
Deploy
2 parents 4a42946 + 033e4c5 commit 93a547b

File tree

12 files changed

+157
-93
lines changed

12 files changed

+157
-93
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: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM python:3
2+
ENV PYTHONUNBUFFERED 1
3+
RUN python -m pip install --upgrade pip
4+
RUN mkdir /code
5+
WORKDIR /code
6+
COPY requirements.txt /code/
7+
RUN pip install -r requirements.txt
8+
COPY . /code/
9+

Procfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
web: gunicorn screencast --log-file -
2-
web: python manage.py runserver 0.0.0.0:5000
1+
web: gunicorn screencast.wsgi

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: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: '3'
2+
3+
services:
4+
db:
5+
image: postgres
6+
environment:
7+
- POSTGRES_DB=postgres
8+
- POSTGRES_USER=postgres
9+
- POSTGRES_PASSWORD=postgres
10+
web:
11+
build: .
12+
command: gunicorn screencast.wsgi:application --bind 0.0.0.0:8000
13+
ports:
14+
- "8000:8000"
15+
depends_on:
16+
- db
17+
- migration
18+
19+
migration:
20+
build: .
21+
command: python manage.py migrate --noinput
22+
depends_on:
23+
- 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+
]

quiz/models.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ def quiz_active(self):
7676
return False
7777
return True
7878
def save(self, force_insert=False, force_update=False, *args, **kwargs):
79-
players=UserScore.objects.all()
80-
for player in players:
81-
player.current_question=1
82-
player.save()
83-
super(config, self).save(force_insert, force_update, *args, **kwargs)
79+
if not self.pk:
80+
players=UserScore.objects.all()
81+
for player in players:
82+
player.current_question=1
83+
player.save()
84+
super(config, self).save(force_insert, force_update, *args, **kwargs)

0 commit comments

Comments
 (0)