Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion blt/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,10 @@
GithubLogin,
GoogleLogin,
GoogleConnect,
contributors_view,
github_callback,
google_callback,
facebook_callback
facebook_callback,
)
from website.api.views import (
IssueViewSet,
Expand Down Expand Up @@ -388,6 +389,7 @@
re_path(r"^ratings/", include("star_ratings.urls", namespace="ratings")),
path("robots.txt", website.views.robots_txt),
path("ads.txt", website.views.ads_txt),
re_path(r"^contributors/$",contributors_view,name="contributors"),
]

if settings.DEBUG:
Expand Down
69 changes: 69 additions & 0 deletions contributors.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[
{
"img":"https://avatars.githubusercontent.com/u/7475382?v=4",
"name":"Fredfalcon",
"repository":"BLT",
"short_description":"Maintatiner of BLT Project",
"long_description":"",
"location":"Anyon",
"twitter":"",
"linkedin":"",
"website":""
},
{
"img":"https://avatars.githubusercontent.com/u/76696648?v=4",
"name":"Aryan Ranjan",
"repository":"BLT Flutter",
"short_description":"Mentor & Contributor @OWASP in GSoC'23 & GSoC'22, Prefinal-Year Student at IIT Roorkee",
"long_description":"",
"location":"Anyon",
"twitter":"",
"linkedin":"",
"website":""

},
{
"img":"https://avatars.githubusercontent.com/u/18749480?v=4",
"name":"Raghav Jajodia",
"repository":"BLT Core",
"short_description":"Women in Tech Advocate :: Diversity Mentor",
"long_description":"",
"location":"Anyon",
"twitter":"",
"linkedin":"",
"website":""
},
{
"img":"https://avatars.githubusercontent.com/u/68425016?v=4",
"name":"Swapnil Shinde",
"repository":"BLT Core",
"short_description":"reincarnating",
"long_description":"",
"location":"Maharashtra, India",
"twitter":"https://twitter.com/a_kraken_head",
"linkedin":"https://www.linkedin.com/in/swapnil-shinde-5ba45118b/",
"website":"https://swapnilshinde.com"
},
{
"img":"https://avatars.githubusercontent.com/u/37345795?v=4",
"name":"Harshit Seksaria",
"repository":"BLT Flutter",
"short_description":"More or less an Android Dev",
"long_description":"",
"location":"Anyon",
"twitter":"",
"linkedin":"",
"website":""
},
{
"img":"https://avatars.githubusercontent.com/u/65587505?v=4",
"name":"Amrit Prakash",
"repository":"BLT Flutter",
"short_description":"IMG || IIT ROORKEE || Web Developer",
"long_description":"",
"location":"Anyon",
"twitter":"",
"linkedin":"",
"website":""
}
]
4 changes: 4 additions & 0 deletions website/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@
</div>
</div>
</div>
{% comment %} block with no bootstrap wrappers {% endcomment %}
{% block natural_content %}
{% endblock %}

{% include "includes/footer.html" %}

</body>
Expand Down
74 changes: 74 additions & 0 deletions website/templates/contributors.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{% extends "base.html" %}

{% block natural_content %}

<style type="text/tailwindcss">
@layer components {
.card {
@apply flex items-center justify-center flex-col gap-2 p-5 w-full sm:w-72 h-full bg-gray-100 border rounded-2xl;
}
}
</style>
<!--Tailwind CSS-->

<!--Font-Awesome-->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css"
integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>

<div class="container my-20 py-8 w-[100vw] min-h-[100vh]">

<div class="flex flex-col text-center gap-4 mb-10 p-4">
<div class="w-[full] h-max flex flex-col items-center">
<p class="text-7xl mb-5 font-bold">Meet our Community Members</p>
<p class="text-4xl bg-red-600 text-white w-max px-5 py-2 rounded-lg">A warm and welcoming collection of open sourcers</p>
</div>
</div>

<div class="flex items-center justify-center flex-wrap gap-4 p-4">

{%for contributor in contributors%}
<div class="group card w-[400px] h-[400px] m-10 flex flex-col items-center hover:bg-red-600 transition duration-200">
<img
src="{{contributor.img}}"
class="w-[160px] h-[160px] mb-3 rounded-full object-cover transition duration-200 group-hover:scale-110"
/>

<div class="transition duration-200 group-hover:text-white text-gray-900 text-5xl font-bold">{{contributor.name}}</div>

<div class="transition duration-200 group-hover:text-purple-800 text-purple-600 text-2xl">{{contributor.location}}</div>

<p class="transition duration-200 group-hover:text-white text-gray-600 text-center px-10">
{{contributor.short_description}}
</p>

<div
class="group-hover:text-white flex items-center justify-center gap-3 mt-2 w-auto h-5 text-gray-600 mt-7"
>
<a href="{{contributor.twitter}}" target="_blank">
<i
class="group-hover:text-white scale-150 m-3 fa-brands fa-twitter fa-lg cursor-pointer transition duration-200 hover:text-gray-400"
></i>
</a>
<a href="{{contributor.linkedin}}" target="_blank">
<i
class="group-hover:text-white scale-150 m-3 fa-brands fa-linkedin fa-lg cursor-pointer transition duration-200 hover:text-gray-400"
></i>
</a>
<a href="{{contributor.website}}" target="_blank">
<i
class="group-hover:text-white scale-150 m-3 fa-brands fa-dribbble fa-lg cursor-pointer transition duration-200 hover:text-gray-400"
></i>
</a>
</div>
</div>
{% endfor %}


</div>
</div>
{% endblock %}
7 changes: 6 additions & 1 deletion website/templates/includes/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@
{% load i18n %}
{% load custom_tags %}

<footer class="bg-black text-white pt-12 pb-8 px-12 bottom-0 relative">
<footer class="bg-black text-white pt-12 pb-8 px-12 bottom-0 relative fixed t-0">
<div class="mx-auto px-4 !container overflow-hidden flex flex-col lg:flex-row justify-between">
<a href="/" class="block mr-4 w-1/2">
<img src="{% static 'img/logo_white.png' %}" class="w-[200px] ml-4 lg:ml-0" alt="footer logo">
</a>
<div class="w-2/3 block sm:flex text-2xl mt-6 lg:mt-0">
<ul class="text-gray-700 list-none p-0 font-thin flex flex-col text-left w-full">
<li class="inline-block py-2 px-3 text-white uppercase font-medium tracking-wide">Community</li>
<li><a href="/contributors" class="inline-block py-2 px-3 text-gray-500 hover:text-white no-underline">Contributors</a></li>
</ul>

<ul class="text-gray-700 list-none p-0 font-thin flex flex-col text-left w-full">
<li class="inline-block py-2 px-3 text-white uppercase font-medium tracking-wide">Company</li>
<li><a href="https://github.com/OWASP/BLT/releases" class="inline-block py-2 px-3 text-gray-500 hover:text-white no-underline">Features</a></li>
Expand Down
24 changes: 17 additions & 7 deletions website/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,15 @@
from django.db.models import Sum, Count, Q
from django.db.models.functions import ExtractMonth
from django.dispatch import receiver
from django.http import Http404
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.http import JsonResponse
from django.http import Http404,JsonResponse,HttpResponseRedirect,HttpResponse
from django.shortcuts import render, redirect, get_object_or_404
from django.template.loader import render_to_string
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import DetailView, TemplateView, ListView
from django.views.generic import View
from django.views.decorators.http import require_GET
from django.views.generic import DetailView, TemplateView, ListView, View
from django.views.generic.edit import CreateView
from django.core import serializers
from django.views.decorators.http import require_GET
from django.conf import settings

from user_agents import parse
Expand Down Expand Up @@ -3043,6 +3039,20 @@ def handler404(request, exception):
def handler500(request, exception=None):
return render(request, "500.html", {}, status=500)

def contributors_view(request,*args,**kwargs):

contributors_file_path = os.path.join(settings.BASE_DIR,"contributors.json")

with open(contributors_file_path,'r') as file:
content = file.read()

contributors = json.loads(content)

context = {
"contributors":contributors
}

return render(request,"contributors.html",context=context)


# class CreateIssue(CronJobBase):
Expand Down