├── label_buddy ├── projects │ ├── __init__.py │ ├── migrations │ │ └── .gitignore │ ├── apps.py │ ├── serializers.py │ ├── admin.py │ ├── permissions.py │ ├── forms.py │ ├── urls.py │ └── models.py ├── tasks │ ├── __init__.py │ ├── migrations │ │ └── .gitignore │ ├── apps.py │ ├── forms.py │ ├── serializers.py │ ├── urls.py │ ├── admin.py │ ├── helpers.py │ ├── views.py │ └── models.py ├── tests │ ├── __init__.py │ └── test_pages.py ├── users │ ├── __init__.py │ ├── migrations │ │ └── .gitignore │ ├── apps.py │ ├── serializers.py │ ├── urls.py │ ├── admin.py │ ├── password_validators.py │ ├── models.py │ ├── views.py │ └── forms.py ├── label_buddy │ ├── __init__.py │ ├── asgi.py │ ├── wsgi.py │ ├── urls.py │ └── settings.py ├── templates │ ├── account │ │ ├── email │ │ │ ├── email_confirmation_subject.txt │ │ │ ├── email_confirmation_signup_message.txt │ │ │ ├── password_reset_key_subject.txt │ │ │ ├── email_confirmation_signup_subject.txt │ │ │ ├── password_reset_key_message.txt │ │ │ └── email_confirmation_message.txt │ │ ├── messages │ │ │ ├── logged_out.txt │ │ │ ├── password_set.txt │ │ │ ├── email_confirmed.txt │ │ │ ├── primary_email_set.txt │ │ │ ├── email_deleted.txt │ │ │ ├── password_changed.txt │ │ │ ├── email_confirmation_sent.txt │ │ │ ├── unverified_primary_email.txt │ │ │ ├── cannot_delete_primary_email.txt │ │ │ └── logged_in.txt │ │ ├── account_inactive.html │ │ ├── signup_closed.html │ │ ├── snippets │ │ │ └── already_logged_in.html │ │ ├── password_reset_from_key_done.html │ │ ├── verification_sent.html │ │ ├── password_set.html │ │ ├── verified_email_required.html │ │ ├── logout.html │ │ ├── password_reset_done.html │ │ ├── password_change.html │ │ ├── password_reset_from_key.html │ │ ├── email_confirm.html │ │ ├── password_reset.html │ │ ├── signup.html │ │ ├── login.html │ │ └── email.html │ ├── 404.html │ ├── label_buddy │ │ ├── welcome_page.html │ │ ├── create_project.html │ │ ├── user_edit_profile.html │ │ ├── delete_project.html │ │ ├── edit_project.html │ │ ├── delete_task.html │ │ ├── delete_annotation.html │ │ ├── list_annotations.html │ │ ├── index.html │ │ └── review_page.html │ ├── index_modal.html │ ├── project_modals.html │ ├── review_info_modal.html │ ├── pagination.html │ ├── list_annotations_filters.html │ ├── review_page_modal.html │ ├── project_page_filters.html │ ├── annotation_page_modal.html │ ├── import_modal.html │ ├── project_information_modal.html │ ├── export_modal.html │ └── base.html ├── media │ ├── audio │ │ └── .gitignore │ └── images │ │ └── .gitignore ├── static │ ├── images │ │ ├── user │ │ │ └── user.jpg │ │ ├── project_logo.png │ │ └── favicons │ │ │ ├── logo.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── Label_buddy.png │ │ │ ├── logo_transparent.png │ │ │ ├── pinterest_board_photo.png │ │ │ ├── twitter_profile_image.png │ │ │ ├── youtube_profile_image.png │ │ │ ├── facebook_cover_photo_1.png │ │ │ ├── facebook_cover_photo_2.png │ │ │ ├── facebook_profile_image.png │ │ │ ├── linkedin_banner_image_1.png │ │ │ ├── linkedin_banner_image_2.png │ │ │ ├── linkedin_profile_image.png │ │ │ ├── logo_transparent_165x25.png │ │ │ ├── pinterest_profile_image.png │ │ │ ├── twitter_header_photo_1.png │ │ │ ├── twitter_header_photo_2.png │ │ │ └── logo_transparent_resized.png │ ├── .gitignore │ ├── css │ │ ├── delete_task.css │ │ ├── delete_annotation.css │ │ ├── welcome_page.css │ │ ├── index.css │ │ ├── list_annotations.css │ │ ├── password_reset.css │ │ ├── signin_page.css │ │ ├── signup_page.css │ │ ├── project_page.css │ │ ├── annotation_page.css │ │ ├── review_page.css │ │ └── common.css │ └── js │ │ ├── welcome_page.js │ │ ├── edit_project.js │ │ ├── index.js │ │ ├── signin_page.js │ │ ├── signup_page.js │ │ ├── common.js │ │ └── list_annotations.js └── manage.py ├── docs ├── Final_proposal.pdf ├── Screeshots_Label_buddy │ ├── Login.png │ ├── Register.png │ ├── Index_page.png │ ├── Edit_profile.png │ ├── Import_data.png │ ├── Export_data_page.png │ ├── project_edit_page.png │ ├── project_create_page.png │ ├── List_annotations_page.png │ ├── Project_page_after_import.png │ ├── Review_page_after_review.png │ ├── Review_page_before_review.png │ ├── Annotation_page_after_review.png │ ├── Project_page_before_import.png │ ├── Annotation_page_after_annotation.png │ └── Annotation_page_before_annotation.png ├── user_manual.md └── GSOC_FINAL_REPORT.md ├── pyvenv.cfg ├── .gitignore ├── LICENSE ├── requirements.txt └── README.md /label_buddy/projects/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /label_buddy/tasks/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /label_buddy/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /label_buddy/users/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /label_buddy/label_buddy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /label_buddy/templates/account/email/email_confirmation_subject.txt: -------------------------------------------------------------------------------- 1 | Confirm Your Email. -------------------------------------------------------------------------------- /label_buddy/media/audio/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /label_buddy/media/images/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /label_buddy/projects/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /label_buddy/tasks/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /label_buddy/users/migrations/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file 4 | !.gitignore -------------------------------------------------------------------------------- /docs/Final_proposal.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Final_proposal.pdf -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/logged_out.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}You have signed out.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /label_buddy/templates/account/email/email_confirmation_signup_message.txt: -------------------------------------------------------------------------------- 1 | {% include "account/email/email_confirmation_message.txt" %} 2 | -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/password_set.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Password successfully set.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Login.png -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/email_confirmed.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}You have confirmed {{email}}.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/primary_email_set.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Primary e-mail address set.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Register.png -------------------------------------------------------------------------------- /label_buddy/static/images/user/user.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/user/user.jpg -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/email_deleted.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Removed e-mail address {{email}}.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/password_changed.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Password successfully changed.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Index_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Index_page.png -------------------------------------------------------------------------------- /label_buddy/static/images/project_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/project_logo.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Edit_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Edit_profile.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Import_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Import_data.png -------------------------------------------------------------------------------- /label_buddy/static/.gitignore: -------------------------------------------------------------------------------- 1 | # exclude all files 2 | * 3 | # Except this file and project static files 4 | !.gitignore 5 | !.css/ 6 | !.js/ 7 | !.images/ 8 | -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/logo.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/favicon.ico -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/favicon.png -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/email_confirmation_sent.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Confirmation e-mail sent to {{email}}.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Export_data_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Export_data_page.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/project_edit_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/project_edit_page.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/Label_buddy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/Label_buddy.png -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/unverified_primary_email.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}Your primary e-mail address must be verified.{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/project_create_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/project_create_page.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/List_annotations_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/List_annotations_page.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/logo_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/logo_transparent.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Project_page_after_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Project_page_after_import.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Review_page_after_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Review_page_after_review.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Review_page_before_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Review_page_before_review.png -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/cannot_delete_primary_email.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% blocktrans %}You cannot remove your primary e-mail address ({{email}}).{% endblocktrans %} 3 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Annotation_page_after_review.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Annotation_page_after_review.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Project_page_before_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Project_page_before_import.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/pinterest_board_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/pinterest_board_photo.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/twitter_profile_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/twitter_profile_image.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/youtube_profile_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/youtube_profile_image.png -------------------------------------------------------------------------------- /label_buddy/tasks/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class TasksConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'tasks' 7 | -------------------------------------------------------------------------------- /label_buddy/users/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class UsersConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'users' 7 | -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/facebook_cover_photo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/facebook_cover_photo_1.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/facebook_cover_photo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/facebook_cover_photo_2.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/facebook_profile_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/facebook_profile_image.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/linkedin_banner_image_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/linkedin_banner_image_1.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/linkedin_banner_image_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/linkedin_banner_image_2.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/linkedin_profile_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/linkedin_profile_image.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/logo_transparent_165x25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/logo_transparent_165x25.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/pinterest_profile_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/pinterest_profile_image.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/twitter_header_photo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/twitter_header_photo_1.png -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/twitter_header_photo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/twitter_header_photo_2.png -------------------------------------------------------------------------------- /label_buddy/templates/account/email/password_reset_key_subject.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% autoescape off %} 3 | {% blocktrans %}Password Reset E-mail{% endblocktrans %} 4 | {% endautoescape %} 5 | -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Annotation_page_after_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Annotation_page_after_annotation.png -------------------------------------------------------------------------------- /docs/Screeshots_Label_buddy/Annotation_page_before_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/docs/Screeshots_Label_buddy/Annotation_page_before_annotation.png -------------------------------------------------------------------------------- /label_buddy/projects/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ProjectsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'projects' 7 | -------------------------------------------------------------------------------- /label_buddy/static/images/favicons/logo_transparent_resized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eellak/gsoc2021-audio-annotation-tool/HEAD/label_buddy/static/images/favicons/logo_transparent_resized.png -------------------------------------------------------------------------------- /label_buddy/templates/account/email/email_confirmation_signup_subject.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %} 2 | {% autoescape off %} 3 | {% blocktrans %}Confirm Your E-mail{% endblocktrans %} 4 | {% endautoescape %} 5 | -------------------------------------------------------------------------------- /label_buddy/templates/account/messages/logged_in.txt: -------------------------------------------------------------------------------- 1 | {% load account %} 2 | {% load i18n %} 3 | {% user_display user as name %} 4 | {% blocktrans %}Successfully signed in as {{name}}.{% endblocktrans %} 5 | -------------------------------------------------------------------------------- /label_buddy/static/css/delete_task.css: -------------------------------------------------------------------------------- 1 | .delete-header { 2 | font-family: 'Georama'; 3 | text-shadow: 2px 2px 2px #aaa; 4 | 5 | white-space:nowrap; 6 | overflow:hidden; 7 | text-overflow:ellipsis; 8 | } -------------------------------------------------------------------------------- /label_buddy/static/css/delete_annotation.css: -------------------------------------------------------------------------------- 1 | .delete-header { 2 | font-family: 'Georama'; 3 | text-shadow: 2px 2px 2px #aaa; 4 | 5 | white-space:nowrap; 6 | overflow:hidden; 7 | text-overflow:ellipsis; 8 | } -------------------------------------------------------------------------------- /pyvenv.cfg: -------------------------------------------------------------------------------- 1 | home = /usr 2 | implementation = CPython 3 | version_info = 3.8.5.final.0 4 | virtualenv = 20.0.17 5 | include-system-site-packages = false 6 | base-prefix = /usr 7 | base-exec-prefix = /usr 8 | base-executable = /usr/bin/python3 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # virtual enviroment folders 2 | bin/ 3 | lib/ 4 | share/ 5 | env/ 6 | 7 | 8 | *.pyc 9 | label_buddy/*.png 10 | extract_folder/ 11 | 12 | # local settings and db ignonred 13 | label_buddy/.coverage 14 | label_buddy/db.sqlite3 15 | label_buddy/label_buddy/local_settings.py -------------------------------------------------------------------------------- /label_buddy/static/js/welcome_page.js: -------------------------------------------------------------------------------- 1 | document.addEventListener('DOMContentLoaded', function() { 2 | // Your application has indicated there's an error 3 | window.setTimeout(function(){ 4 | 5 | // Move to a new location or you can do something else 6 | window.location.href = "/accounts/login"; 7 | 8 | }, 3000); 9 | }); -------------------------------------------------------------------------------- /label_buddy/templates/account/account_inactive.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load i18n %} 4 | 5 | {% block title %} ◦ Account Inactive {% endblock %} 6 | 7 | {% block content %} 8 | {{ block.super }} 9 |
{% trans "This account is inactive." %}
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /label_buddy/templates/account/signup_closed.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load i18n %} 4 | 5 | {% block title %} ◦ Sign Up Closed {% endblock %} 6 | 7 | {% block content %} 8 | {{ block.super }} 9 |{% trans "We are sorry, but the sign up is currently closed." %}
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /label_buddy/users/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from .models import User 3 | 4 | 5 | class UserSerializer(serializers.ModelSerializer): 6 | 7 | """ 8 | Serializer for user API endpoint data. 9 | """ 10 | 11 | class Meta: 12 | model = User 13 | fields = [ 14 | "name", 15 | "username", 16 | "email", 17 | ] 18 | -------------------------------------------------------------------------------- /label_buddy/static/js/edit_project.js: -------------------------------------------------------------------------------- 1 | // if redirect after project has no labels clear url 2 | document.addEventListener('DOMContentLoaded', function() { 3 | var url = window.location.href; 4 | parameters = url.split('?')[1] 5 | if(parameters) { 6 | document.getElementById('new_labels').style.border = '1px solid red' 7 | window.history.pushState({}, '', "/projects/" + project_id + "/edit"); 8 | } 9 | }); -------------------------------------------------------------------------------- /label_buddy/tests/test_pages.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase, Client 2 | 3 | class TestIndexPage(TestCase): 4 | def test_index(self): 5 | request = self.client.get('/') 6 | self.assertEqual(request.status_code, 200) 7 | 8 | def test_invalid_page(self): 9 | # test page that does not exist 10 | request = self.client.get('/does_not_exist') 11 | self.assertEqual(request.status_code, 404) -------------------------------------------------------------------------------- /label_buddy/static/css/welcome_page.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-bottom: 0%; 3 | } 4 | 5 | #welcomeDiv { 6 | background: linear-gradient(65.45deg, #212631 16.77%, #2F1847 79%); 7 | font-family: 'Lato'; 8 | font-style: normal; 9 | color: #FCF7F8; 10 | font-weight: 600; 11 | font-size: 28px; 12 | } 13 | 14 | #signInText { 15 | font-family: 'Lato'; 16 | /* font-style: normal; */ 17 | color: #FCF7F8; 18 | font-size: 12px; 19 | } -------------------------------------------------------------------------------- /label_buddy/tasks/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from .models import Task 3 | 4 | 5 | class TaskForm(forms.ModelForm): 6 | 7 | """ 8 | Task form for uploading a file in the project page. 9 | """ 10 | 11 | file = forms.FileField(label='', widget=forms.FileInput(attrs={"id": "import-file", "accept": ".wav, .mp3, .mp4, .zip"})) 12 | 13 | class Meta: 14 | model = Task 15 | fields = [ 16 | "file", 17 | ] 18 | -------------------------------------------------------------------------------- /label_buddy/templates/account/email/password_reset_key_message.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %}{% blocktrans with site_name=current_site.name site_domain=current_site.domain %}Hello from {{ site_name }}! 2 | 3 | You requested a password reset for your user account. 4 | Click the link below to reset your password.{% endblocktrans %} 5 | 6 | {{ password_reset_url }} 7 | 8 | {% if username %}{% blocktrans %}In case you forgot, your username is {{ username }}.{% endblocktrans %} 9 | {% endif %} -------------------------------------------------------------------------------- /label_buddy/templates/account/snippets/already_logged_in.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% load account %} 4 | 5 | 6 | {% user_display user as user_display %} 7 |You are already logged in as
{% trans 'Your password is now changed.' %}
11 | 14 | {% endblock %} 15 | -------------------------------------------------------------------------------- /label_buddy/label_buddy/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for label_buddy project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'label_buddy.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /label_buddy/label_buddy/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for label_buddy project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'label_buddy.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /label_buddy/static/js/index.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $('.clickable-row td:last-child').click(function(e){ 3 | e.stopPropagation() 4 | }); 5 | $(".clickable-row td:last-child").on({ 6 | mouseenter: function () { 7 | document.getElementById('index-table').classList.remove("table-hover"); 8 | }, 9 | mouseleave: function () { 10 | document.getElementById('index-table').classList.add("table-hover"); 11 | } 12 | }); 13 | }); 14 | -------------------------------------------------------------------------------- /label_buddy/tasks/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from .models import Task 3 | 4 | 5 | class TaskSerializer(serializers.ModelSerializer): 6 | 7 | """ 8 | Serializer for task API endpoint data. 9 | """ 10 | 11 | class Meta: 12 | model = Task 13 | fields = [ 14 | "project", 15 | "file", 16 | "url", 17 | "extra", 18 | "status", 19 | "review_status", 20 | "assigned_to", 21 | ] 22 | -------------------------------------------------------------------------------- /label_buddy/templates/account/verification_sent.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% load i18n %} 4 | 5 | {% block title %} ◦ Verify Your E-mail Address {% endblock %} 6 | 7 | {% block content %} 8 | {{ block.super }} 9 |{% blocktrans %}We have sent an e-mail to you for verification. Follow the link provided to finalize the signup process. Please contact us if you do not receive it within a few minutes.{% endblocktrans %}
12 | 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /label_buddy/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | 3 | {% load static %} 4 | 5 | {% block head_files %} 6 | {{ block.super }} 7 | 8 | {% endblock %} 9 | 10 | {% block title %} ◦ Welcome {% endblock %} 11 | 12 | {% block navbar %}{% endblock %} 13 | {% block content %} 14 |{% blocktrans %}This part of the site requires us to verify that 15 | you are who you claim to be. For this purpose, we require that you 16 | verify ownership of your e-mail address. {% endblocktrans %}
17 | 18 |{% blocktrans %}We have sent an e-mail to you for 19 | verification. Please click on the link inside this e-mail. Please 20 | contact us if you do not receive it within a few minutes.{% endblocktrans %}
21 | 22 |{% blocktrans %}Note: you can still change your e-mail address.{% endblocktrans %}
23 | 24 | 25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /label_buddy/projects/permissions.py: -------------------------------------------------------------------------------- 1 | from rest_framework import permissions 2 | 3 | 4 | class UserCanCreateProject(permissions.BasePermission): 5 | 6 | """ 7 | Custom permission to only allow users who can create projects to do so. 8 | """ 9 | 10 | def has_permission(self, request, view): 11 | 12 | """ 13 | Allow to post only if user Can create projects. 14 | """ 15 | 16 | # Allow GET, HEAD or OPTIONS requests. 17 | if request.method in permissions.SAFE_METHODS: 18 | return True 19 | return request.user.can_create_projects 20 | 21 | def has_object_permission(self, request, view, obj): 22 | 23 | """ 24 | If user is part of the specific project then return true, else false. 25 | """ 26 | 27 | user = request.user 28 | if (user in obj.reviewers.all()) or (user in obj.annotators.all()) or (user in obj.managers.all()): 29 | return True 30 | 31 | return False 32 | -------------------------------------------------------------------------------- /label_buddy/templates/account/logout.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %} ◦ Sign Out {% endblock %} 4 | 5 | {% block content %} 6 | {{ block.super }} 7 |Are you sure you want to sign out?
13 | 22 |We have sent you an e-mail. Please contact us if you do not receive it within a few minutes.
You will be redirected to Sign In page in 5 seconds.
{% blocktrans %}The password reset link was invalid, possibly because it has already been used. Please request a new password reset.{% endblocktrans %}
19 | {% else %} 20 | {% if form %} 21 | 26 | {% else %} 27 |{% trans 'Your password is now changed.' %}
28 | {% endif %} 29 | {% endif %} 30 |{% blocktrans with confirmation.email_address.email as email %} Please confirm that {{ email }} is an e-mail address for user {{ user_display }}.{% endblocktrans %}
22 | 23 | 27 | 28 | {% else %} 29 | 30 | {% url 'account_email' as email_url %} 31 | 32 |{% blocktrans %}This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request. You will be redirected to login page in 5 seconds.{% endblocktrans %}
33 | 36 | 37 | {% endif %} 38 |Are you sure you want to delete {{ project.title }}?
29 | 38 |Are you sure you want to delete this task?
37 | 46 |Are you sure you want to delete this annotation?
41 | 50 |Password Reset
28 | 46 |50 | Sign in 51 |
52 | 53 |54 | • 55 |
56 |57 | don't have an account? 58 |
59 | 60 |61 | Sign up 62 |
63 | 64 |Sign up
23 | {% if form.errors %} 24 | {% for error in form.non_field_errors %} 25 |73 | Forgot your Password? 74 |
75 | 76 |77 | • 78 |
79 |80 | already have an account? 81 |
82 | 83 |84 | Sign In 85 |
86 | 87 |Sign in
20 | {% for message in messages %} 21 | {% if message.level == DEFAULT_MESSAGE_LEVELS.SUCCESS %} 22 |{% trans 'The following e-mail addresses are associated with your account:' %}
28 | 29 | 65 | 66 | {% else %} 67 | 68 |{% trans 'Warning:'%} {% trans "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc." %}
69 | 70 | {% endif %} 71 | 72 | 73 || ID | 51 |Task Title | 52 |Annotator | 53 |Date of Creation | 54 |Last update | 55 |Result JSON format | 56 |Review status | 57 |Reviewed by you | 58 ||
|---|---|---|---|---|---|---|---|---|
| {% get_table_id page_obj.number annotations_per_page forloop.counter %} | 67 | {% if task.file %} 68 |{{ task.original_file_name }} | 69 | {% else %} 70 |- | 71 | {% endif %} 72 | 73 |
74 | {% comment %}
75 | {% if annotation.user == user %}
76 | |
84 |
85 | {{ annotation.created_at|date:"D d M Y" }} | 86 | 87 |88 | {% if annotation.updated_at %} 89 | {{ annotation.updated_at|date:"D d M Y" }} 90 | {% else %} 91 | - 92 | {% endif %} 93 | | 94 | 95 |96 | {{ annotation.result }} 97 | | 98 | 99 |100 | {% if annotation.review_status == approved %} 101 | 102 | Approved 103 | {% elif annotation.review_status == rejected%} 104 | 105 | Rejected 106 | {% else %} 107 | 108 | Unreviewed 109 | {% endif %} 110 | | 111 | 112 |113 | {% if annotations_reviewed_by_user|get_item:annotation.id %} 114 | 115 | Reviewed by you 116 | {% else %} 117 | 118 | Not reviewed by you 119 | {% endif %} 120 | | 121 |