From 457bb862a99f687b8dd60d01066d0294465ea85a Mon Sep 17 00:00:00 2001 From: kasv-p <84275697+kasv-p@users.noreply.github.com> Date: Sat, 28 May 2022 23:04:06 +0530 Subject: [PATCH 01/10] Add files via upload place superuser.bat file in cdc_backend folder and setup.bat in cdc folder. updated setup.sh please check and review --- setup.bat | 12 ++++++++++++ superuser.bat | 11 +++++++++++ 2 files changed, 23 insertions(+) create mode 100644 setup.bat create mode 100644 superuser.bat diff --git a/setup.bat b/setup.bat new file mode 100644 index 0000000..73da3f2 --- /dev/null +++ b/setup.bat @@ -0,0 +1,12 @@ + +start /wait python -m venv venv && venv\Scripts\activate && pip install -r requirements.txt &^ +echo Environment Setup Complete &^ +timeout 3 > NUL &^ +cd "CDC_Backend" &^ + +python manage.py flush --no-input &^ +python manage.py makemigrations &^ +python manage.py migrate &^ +echo Migrations complete &^ +start superuser.bat &^ +echo done successfully diff --git a/superuser.bat b/superuser.bat new file mode 100644 index 0000000..88d3591 --- /dev/null +++ b/superuser.bat @@ -0,0 +1,11 @@ +@echo off +set /p create="do you want to create supruser ? (Y/N) " + + +if %create% equ Y ( python manage.py createsuperuser ) +if %create% equ y ( python manage.py createsuperuser ) + +python manage.py collectstatic --noinput +if exist Storage (echo Storage Directory already exists) else ( echo Creating Storage Directory... & mkdir Storage & echo Storage Directory Created) +timeout 3 > NUL +pause From b04b53069c1b72f1e0483ca667100144cbcc3cc9 Mon Sep 17 00:00:00 2001 From: kasv-p <84275697+kasv-p@users.noreply.github.com> Date: Sat, 28 May 2022 23:07:38 +0530 Subject: [PATCH 02/10] Update setup.sh --- setup.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/setup.sh b/setup.sh index 86a2bc3..aaa20b9 100644 --- a/setup.sh +++ b/setup.sh @@ -20,3 +20,11 @@ else echo "${DIR} Directory Created" fi +echo Do you want ceate credentials for super user (Y/N) ? +read create +create=${create^^} + +if [ "$create" == "Y" ]; then + ### Take action if user want to create ### + python3 manage.py createsuperuser +fi From 419eaa40ac17be979f23288b34a69ee701c04f68 Mon Sep 17 00:00:00 2001 From: Abhishek28112002 <72252789+Abhishek28112002@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:45:22 +0530 Subject: [PATCH 03/10] Update README.md --- README.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 83ac1d8..21b39b1 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ python# CDC - Backend ### Setup 1. Download the Repository to your local machine
-2. Create a Virtual Environment in the [CDC_Backend](./) folder with this command below
+2. Make Sour u have downloaded python from python.org +3. Create a Virtual Environment in the [CDC_Backend](./) folder with this command below
`python -m venv venv` 3. Activate the environment with this command
`.\venv\Scripts\activate` @@ -13,6 +14,15 @@ python# CDC - Backend `pip install -r requirements.txt ` 5. Ensure that you have the PostgreSQL installed on your machine and is running on PORT **5432**
6. Make sure to give the correct database credentials in [settings.py](./CDC_Backend/CDC_Backend/settings.py) +7. Run these following commands .. +8. cd CDC_Backend +python manage.py flush --no-input +python manage.py makemigrations +python manage.py migrate +python manage.py collectstatic --noinput +mkdir Storage +python manage.py makemigrations APIs + ### Running the Application @@ -26,8 +36,13 @@ python# CDC - Backend 1. You can access the admin panel by running the server and opening 2. Run `python manage.py createsuperuser` to create a user to access the admin panel. -3. Set up the Username and Password -4. You can log in and change the database values anytime. +3. if there is an error due to time then sync your machine time . +4. Set up the Username and Password +5. You can log in and change the database values anytime. +6. Create your id as insitute Roll No for both admin and student . +7.if u are still getting an error ,open inspect and see in network +And then recognize it +8.Check the client link in dev.env in backend and .env in frontend is the same ### Deploying From a05ec1430f876803ca995880494ab87a6ece11f6 Mon Sep 17 00:00:00 2001 From: kasv-p <84275697+kasv-p@users.noreply.github.com> Date: Mon, 6 Jun 2022 19:03:04 +0530 Subject: [PATCH 04/10] creating db command added --- setup.bat | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.bat b/setup.bat index 73da3f2..26ffaf0 100644 --- a/setup.bat +++ b/setup.bat @@ -2,11 +2,14 @@ start /wait python -m venv venv && venv\Scripts\activate && pip install -r requirements.txt &^ echo Environment Setup Complete &^ timeout 3 > NUL &^ +echo enter password for user postgres &^ +createdb -h localhost -p 5432 -U postgres cdc &^ cd "CDC_Backend" &^ python manage.py flush --no-input &^ python manage.py makemigrations &^ python manage.py migrate &^ echo Migrations complete &^ -start superuser.bat &^ +cd .. &^ +start .\superuser.bat &^ echo done successfully From 76b9cfc9b8ffb4c177662897410b522cc2c36734 Mon Sep 17 00:00:00 2001 From: kasv-p <84275697+kasv-p@users.noreply.github.com> Date: Mon, 6 Jun 2022 19:25:25 +0530 Subject: [PATCH 05/10] Update superuser.bat --- superuser.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/superuser.bat b/superuser.bat index 88d3591..7afce95 100644 --- a/superuser.bat +++ b/superuser.bat @@ -1,6 +1,7 @@ @echo off set /p create="do you want to create supruser ? (Y/N) " +cd "CDC_Backend" &^ if %create% equ Y ( python manage.py createsuperuser ) if %create% equ y ( python manage.py createsuperuser ) From 52b74e2e9f1b299da451578d3a3642695e6b2f5d Mon Sep 17 00:00:00 2001 From: Gowtham Sai <66207607+gowtham3105@users.noreply.github.com> Date: Sat, 8 Oct 2022 14:26:27 +0530 Subject: [PATCH 06/10] Send reminder mails service --- CDC_Backend/APIs/constants.py | 2 + CDC_Backend/CDC_Backend/settings.py | 1 + CDC_Backend/scripts/send_reminder_mails.py | 63 +++++++++++++++++++ .../templates/students_opening_reminder.html | 2 +- 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 CDC_Backend/scripts/send_reminder_mails.py diff --git a/CDC_Backend/APIs/constants.py b/CDC_Backend/APIs/constants.py index 5696feb..42b2736 100644 --- a/CDC_Backend/APIs/constants.py +++ b/CDC_Backend/APIs/constants.py @@ -158,6 +158,7 @@ STUDENT_APPLICATION_SUBMITTED_TEMPLATE_SUBJECT = 'CDC - Application Submitted - STUDENT_APPLICATION_UPDATED_TEMPLATE_SUBJECT = 'CDC - Application Updated - {company_name}' COMPANY_EMAIl_VERIFICATION_TEMPLATE_SUBJECT = 'Email Verification - Career Development Cell, IIT Dharwad' NOTIFY_STUDENTS_OPENING_TEMPLATE_SUBJECT = 'Placement Opportunity at {company_name}' +REMINDER_STUDENTS_OPENING_TEMPLATE_SUBJECT = 'Reminder - Placement Opportunity at {company_name}' STUDENT_APPLICATION_SUBMITTED_TEMPLATE = 'student_application_submitted.html' COMPANY_OPENING_SUBMITTED_TEMPLATE = 'company_opening_submitted.html' @@ -167,6 +168,7 @@ STUDENT_APPLICATION_UPDATED_TEMPLATE = 'student_application_updated.html' COMPANY_EMAIL_VERIFICATION_TEMPLATE = 'company_email_verification.html' COMPANY_JNF_RESPONSE_TEMPLATE = 'company_jnf_response.html' NOTIFY_STUDENTS_OPENING_TEMPLATE = 'notify_students_new_opening.html' +REMINDER_STUDENTS_OPENING_TEMPLATE = 'students_opening_reminder.html' APPLICATION_CSV_COL_NAMES = ['Applied At', 'Roll No.', 'Name', 'Email', 'Phone Number', 'Branch', 'Batch', 'CPI', 'Resume', 'Selected', ] diff --git a/CDC_Backend/CDC_Backend/settings.py b/CDC_Backend/CDC_Backend/settings.py index c5667cf..154e430 100644 --- a/CDC_Backend/CDC_Backend/settings.py +++ b/CDC_Backend/CDC_Backend/settings.py @@ -46,6 +46,7 @@ INSTALLED_APPS = [ 'background_task', 'simple_history', 'import_export', + 'django_extensions', ] MIDDLEWARE = [ diff --git a/CDC_Backend/scripts/send_reminder_mails.py b/CDC_Backend/scripts/send_reminder_mails.py new file mode 100644 index 0000000..0048c34 --- /dev/null +++ b/CDC_Backend/scripts/send_reminder_mails.py @@ -0,0 +1,63 @@ +from APIs.models import Placement, Student, PlacementApplication, User +from APIs.utils import sendEmail, PlacementApplicationConditions +from APIs.constants import * +from django.shortcuts import get_object_or_404 +from django.utils import timezone +import time +import pytz + +REPEAT_AFTER = 10 * 60 + + +def send_reminder_mails(): + placements = Placement.objects.all() + students = Student.objects.all() + + for placement in placements.iterator(): + print("Processing placement: ", placement) + # if placement is approved and email is verified + if not (placement.offer_accepted and placement.email_verified): + continue + + # if placement is not expired + if placement.deadline_datetime < timezone.now(): + continue + + # send the reminder mail if the deadline is within 24 hours +- ReapetAfter + if timezone.now() - timezone.timedelta( + seconds=REPEAT_AFTER) <= placement.deadline_datetime - timezone.timedelta(days=1) < timezone.now() + \ + timezone.timedelta(seconds=REPEAT_AFTER): + for student in students: + try: + # if Application not found then send email + if not PlacementApplication.objects.filter(placement=placement, student=student).exists(): + if student.branch in placement.allowed_branch: + if student.degree == 'bTech' or placement.rs_eligible is True: + if PlacementApplicationConditions(student, placement)[0]: + student_user = get_object_or_404(User, id=student.id) + # change timezone to IST + deadline_datetime = placement.deadline_datetime.astimezone(pytz.timezone('Asia/Kolkata')) + data = { + "company_name": placement.company_name, + "opening_type": 'Placement', + "deadline": deadline_datetime.strftime("%A, %-d %B %Y, %-I:%M %p"), + "link": PLACEMENT_OPENING_URL.format(id=placement.id) + } + print("Sending mail to " + student_user.email, "placement id: ", placement.id) + sendEmail(student_user.email, + REMINDER_STUDENTS_OPENING_TEMPLATE_SUBJECT.format( + company_name=placement.company_name), + data, REMINDER_STUDENTS_OPENING_TEMPLATE) + + except Exception as e: + print(e) + continue + + +def run(): + while True: + print("Sleeping for", REPEAT_AFTER, "seconds") + time.sleep(REPEAT_AFTER) + print("Running send_reminder_mails()") + send_reminder_mails() + diff --git a/CDC_Backend/templates/students_opening_reminder.html b/CDC_Backend/templates/students_opening_reminder.html index 4541089..dd0b9d2 100644 --- a/CDC_Backend/templates/students_opening_reminder.html +++ b/CDC_Backend/templates/students_opening_reminder.html @@ -45,7 +45,7 @@

{{ opening_type }} Opportunity at {{ company_name }}

- Gentle reminder for the same. + Gentle reminder to fill out the application form. Interested students can apply before {{ deadline }} in the CDC-webportal.

From 653177d11ad70075e2b4db1337e1051545eacb63 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Sat, 8 Oct 2022 22:16:04 +0530 Subject: [PATCH 07/10] added django-extensions to requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index d6465e1..efc1a43 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,6 +14,7 @@ django-background-tasks==1.2.5 django-compat==1.0.15 django-cors-headers==3.11.0 django-db-logger==0.1.12 +django-extensions==3.2.1 django-import-export==2.8.0 django-simple-history==3.1.1 djangorestframework==3.13.1 From dbc875eabfd23b3f94ce468cbb7a7753f4baf90c Mon Sep 17 00:00:00 2001 From: Gowtham Sai <66207607+gowtham3105@users.noreply.github.com> Date: Fri, 30 Dec 2022 17:30:02 +0530 Subject: [PATCH 08/10] minor fix to contributors api --- CDC_Backend/APIs/serializers.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CDC_Backend/APIs/serializers.py b/CDC_Backend/APIs/serializers.py index ad7d9f7..bc8cbaa 100644 --- a/CDC_Backend/APIs/serializers.py +++ b/CDC_Backend/APIs/serializers.py @@ -162,7 +162,8 @@ class PlacementApplicationSerializer(serializers.ModelSerializer): return data def get_resume_link(self, obj): - ele = {'link': LINK_TO_STORAGE_RESUME + urllib.parse.quote(str(obj.student.roll_no) + "/" + obj.resume), 'name': obj.resume} + ele = {'link': LINK_TO_STORAGE_RESUME + urllib.parse.quote(str(obj.student.roll_no) + "/" + obj.resume), + 'name': obj.resume} return ele class Meta: @@ -186,6 +187,8 @@ class PlacementApplicationSerializerForAdmin(serializers.ModelSerializer): model = PlacementApplication exclude = ['placement', 'resume'] + class ContributorSerializer(serializers.ModelSerializer): class Meta: - model = Contributor \ No newline at end of file + model = Contributor + fields = '__all__' From b94d63febe3e4f5ddcb14a666e2b21744d962cb6 Mon Sep 17 00:00:00 2001 From: karthik mv Date: Tue, 2 May 2023 00:49:01 +0530 Subject: [PATCH 09/10] Update postgres.md --- doc/setup/postgres.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/setup/postgres.md b/doc/setup/postgres.md index d3dba5e..8941fa6 100644 --- a/doc/setup/postgres.md +++ b/doc/setup/postgres.md @@ -1,6 +1,6 @@ typical conf file for pg_hba.conf for dev work. - +``` # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only @@ -13,4 +13,5 @@ host all all ::1/128 md5 # replication privilege. local replication all peer host replication all 127.0.0.1/32 ident -host replication all ::1/128 ident \ No newline at end of file +host replication all ::1/128 ident +``` From adc33a2430eca9b877b80563318b400b68d85f92 Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Tue, 30 May 2023 15:00:02 +0530 Subject: [PATCH 10/10] make corrections to pr --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 21b39b1..5c37318 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ python# CDC - Backend ### Setup 1. Download the Repository to your local machine
-2. Make Sour u have downloaded python from python.org +2. Make Sure u have downloaded python from python.org or windows store. 3. Create a Virtual Environment in the [CDC_Backend](./) folder with this command below
`python -m venv venv` 3. Activate the environment with this command
@@ -14,14 +14,15 @@ python# CDC - Backend `pip install -r requirements.txt ` 5. Ensure that you have the PostgreSQL installed on your machine and is running on PORT **5432**
6. Make sure to give the correct database credentials in [settings.py](./CDC_Backend/CDC_Backend/settings.py) -7. Run these following commands .. -8. cd CDC_Backend +7. Run these following commands below. (The same are there in setup.sh for linux users and setup.bat for windows users) +```cd CDC_Backend python manage.py flush --no-input python manage.py makemigrations python manage.py migrate python manage.py collectstatic --noinput mkdir Storage python manage.py makemigrations APIs +``` ### Running the Application @@ -40,7 +41,7 @@ python manage.py makemigrations APIs 4. Set up the Username and Password 5. You can log in and change the database values anytime. 6. Create your id as insitute Roll No for both admin and student . -7.if u are still getting an error ,open inspect and see in network +7. if you are still getting an error ,open inspect and see in network And then recognize it 8.Check the client link in dev.env in backend and .env in frontend is the same