diff --git a/docs/developer.json b/docs/developer.json index 84c709c..200642f 100644 --- a/docs/developer.json +++ b/docs/developer.json @@ -1,24 +1,145 @@ [ - { - "name": "Asif Al Fattah", - "email": "asifalfattah34@gmail.com", - "linkedin": "https://www.linkedin.com/in/asif-al-fattah/", - "github": "https://github.com/AsifAlFattah", - "experience": "6+ months", - "currentRole": "Junior Backend Developer at Code Prophet", - "skills": ["Java", "Spring Boot", "PostgreSQL", "Docker", "Problem Solving"], - "location": "Khulna, Bangladesh", - "remoteWork": true - }, - { - "name": "Izazur Rahman Shafin", - "email": "imshafin97@gmail.com", - "linkedin": "https://www.linkedin.com/in/izazurrahmanshafin", - "github": "https://github.com/imShafin", - "experience": "0+ years", - "currentRole": "Support Engineer at Penta Global Limited", - "skills": ["C++", "Python", "FastAPI"], - "location": "Dhaka, Bangladesh", - "remoteWork": false - } -] + { + "name": "Asif Al Fattah\n", + "email": "asifalfattah34@gmail.com", + "linkedin": "https://linkedin.com/in/asif-al-fattah/", + "github": "https://github.com/AsifAlFattah", + "experience": "6+ months", + "currentRole": "Junior Backend Developer at [Code Prophet](https://www.codeprophet.tech/)", + "skills": "Java, Spring Boot, PostgreSQL, Docker, Problem Solving", + "location": "Khulna, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Izazur Rahman Shafin\n", + "email": "imshafin97@gmail.com", + "linkedin": "https://linkedin.com/in/izazurrahmanshafin", + "github": "https://github.com/imShafin", + "experience": "0+ years", + "currentRole": "Support Engineer at [Penta Global Limited](https://www.pentabd.com/)", + "skills": "C++, Python, FastAPI", + "location": "Dhaka, Bangladesh", + "remoteWork": "No" + }, + { + "name": "Mazhar Ibna Zahur\n", + "email": "mazhar.shapnil@gmail.com", + "linkedin": "https://linkedin.com/in/mazhar1322", + "github": "https://github.com/mazharku", + "experience": "5+ years", + "currentRole": "Senior Software Engineer at [Tiller](https://tiller.com.bd/)", + "skills": "Java(7-21),Spring Boot,Quarkus,Kotlin,Docker,DevOps", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Md Emarat Hossain\n", + "email": "emarathossain00@gmail.com", + "linkedin": "https://linkedin.com/in/emarat/", + "github": "https://github.com/Emarat", + "experience": "2+ years", + "currentRole": "Product Manager at [Penta Global Limited](https://www.pentabd.com/)\n- **Skills**:\n- Technical Expertise: Background in development (Flutter, full-stack) and knowledge of PostgreSQL, Python, and SQL.\n- User-Centric Focus: Ability to understand user needs and improve product experiences.\n- Project Leadership: Experience leading projects, managing teams, and coordinating across functions.\n- Communication & Collaboration: Strong cross-functional collaboration and continuous improvement in communication.\n- Adaptability & Continuous Learning: Committed to learning new tools (like SQA) and adapting to evolving challenges.\n- **Location**: Dhaka, Bangladesh\n- **Remote Work**: No\n\n### Md Mashuqur Rahman\n\n- **Email**: mashuq0068@gmail.com\n- **LinkedIn**: [linkedin.com/in/Mashuq](https://www.linkedin.com/in/md-mashuqur-rahman-3aaab8260/)\n- **GitHub**: [github.com/Mashuq](https://github.com/mashuq0068)\n- **Experience**: 6+ months\n- **Current Role**: Junior Frontend Developer at [Code Prophet](https://codeprophet.tech/)", + "skills": "JavaScript, React, Node Js, Express Js", + "location": "Khulna, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Md Mazahrul Islam\n", + "email": "mazharul.saurav255@gmail.com", + "linkedin": "https://linkedin.com/in/Mazharul", + "github": "https://github.com/Mazharul", + "experience": "1+ years", + "currentRole": "Assistant Software Engineer at [IDLC Finance PLC](https://idlc.com/)", + "skills": "JavaScript, C++, React, Node Js, Express Js, Python", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Md Sanoarul Islam\n", + "email": "sanoarul123gmail.com", + "linkedin": "https://linkedin.com/in/md-sanoarul-islam-523942207", + "github": "https://github.com/sanoarul123", + "experience": "6+ months", + "currentRole": "Junior Backend Developer at [Code Prophet](https://www.codeprophet.tech/)", + "skills": "Java, Spring Boot, Python, RestAPIs, PostgreSQL", + "location": "Khulna, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Md Shahjahan\n", + "email": "shahjahan.cseku11@gmail.com", + "linkedin": "https://linkedin.com/in/shahjahan", + "github": "https://github.com/shahjahan48", + "experience": "8+ years", + "currentRole": "Senior Software Engineer at [Dohatec New Media](https://www.dohatec.com/)", + "skills": "Java, Spring Boot, C#, ASP.NET MVC, ASP.NET Core, MSSQL, MySQL, Microservice, Angular, Docker, DevOps", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Mohammad Imrul Hasan", + "email": "viimrul@gmail.com", + "linkedin": "https://imrull", + "github": "https://vimrul", + "experience": "13+ years", + "currentRole": "DevOps Engineer at [Penta Global Limited](https://pentaglobal.com)", + "skills": "Cloud Platforms (AWS, Azure), Docker, Kubernetes, CI/CD (Jenkins, GitLab, ArgoCD), Monitoring (Prometheus, Grafana, Uptime Kuma, OpenTelemetry), ELK Stack, PostgreSQL, MySQL, Redis, DragonflyDB, StackGres, Networking (Istio, Calico, Kiali), Identity Management (Keycloak), Web Servers (Nginx, Apache, Apache Tomcat), Version Control (GitHub)", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Mullah Mohammad Shahjalal", + "email": "shahjalal2075@gmail.com", + "linkedin": "https://linkedin.com/in/shahjalal2075", + "github": "https://github.com/Shahjalal2075", + "experience": "1+ years", + "currentRole": "Full Stack Developer at [Naim IT](https://naimit.ca)", + "skills": "JavaScript, React Js, React Native, Node Js, Express Js, MongoDB, Problem Solving", + "location": "Jashore, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Nandan Kumar Das\n", + "email": "nandandas.ku@gmail.com", + "linkedin": "https://linkedin.com/in/nandan-kumar-das", + "github": "https://github.com/nandan-kumar-das", + "experience": "6+ years", + "currentRole": "Senior Software Engineer at [Dizi Nova Limited](http://dizinova.com/)", + "skills": ".NET Framework, .NET Core, React, MSSQL, MongoDB, Android, Flutter", + "location": "Dhaka, Bangladesh", + "remoteWork": "No" + }, + { + "name": "Nishanul Nishat\n", + "email": "nishanul.nishat@example.com", + "linkedin": "https://linkedin.com/in/nishanul-nishat", + "github": "https://github.com/nishat1098", + "experience": "2.5+ years", + "currentRole": "Senior Software Engineer at [Penta Global Limited](https://www.pentabd.com/)", + "skills": "Java, Spring Boot, Python, FastAPI, Django, Kubernetes, DevOps", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Sadman Sobhan\n", + "email": "imran110219@gmail.com", + "linkedin": "https://linkedin.com/in/sadman", + "github": "https://github.com/sadmansobhan", + "experience": "8+ years", + "currentRole": "Senior Software Engineer at [Penta Global Limited](https://www.pentabd.com/)", + "skills": "Java, Spring Boot, Kubernetes, DevOps", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + }, + { + "name": "Zahid Hasan\n", + "email": "zahidhasanpapon@gmail.com", + "linkedin": "https://linkedin.com/in/zahidhasanpapon/", + "github": "https://github.com/zahidhasanpapon", + "experience": "2+ years", + "currentRole": "Software Engineer at [Penta Global Limited](https://www.pentabd.com/)", + "skills": "Java, Spring Boot, Python, Django, Docker, Redis, RabbitMQ", + "location": "Dhaka, Bangladesh", + "remoteWork": "Yes" + } +] \ No newline at end of file diff --git a/docs/extract_developers.py b/docs/extract_developers.py index d9de339..f753dce 100644 --- a/docs/extract_developers.py +++ b/docs/extract_developers.py @@ -1,43 +1,55 @@ -import json import re +import os +import json -# Read the README.md file -with open('README.md', 'r') as file: - readme_content = file.read() +def read_profiles(filename): + # Specify the path to README.md in the root folder + filepath = os.path.join(os.path.dirname(__file__), '..', filename) -# Define a regex pattern to extract developer details -developer_pattern = re.compile( - r'### (.+?)\n' - r'- \*\*Email\*\*: (.+?)\n' - r'- \*\*LinkedIn\*\*: \[(.+?)\]\((.+?)\)\n' - r'- \*\*GitHub\*\*: \[(.+?)\]\((.+?)\)\n' - r'- \*\*Experience\*\*: (.+?)\n' - r'- \*\*Current Role\*\*: (.+?)\n' - r'- \*\*Skills\*\*: (.+?)\n' - r'- \*\*Location\*\*: (.+?)\n' - r'- \*\*Remote Work\*\*: (.+?)\n', - re.MULTILINE -) + with open(filepath, 'r') as file: + content = file.read() -# Extract developer details -developers = [] -for match in developer_pattern.finditer(readme_content): - developers.append({ - 'name': match.group(1).strip(), - 'email': match.group(2).strip(), - 'linkedin': match.group(3).strip(), - 'linkedin_url': match.group(4).strip(), - 'github': match.group(5).strip(), - 'github_url': match.group(6).strip(), - 'experience': match.group(7).strip(), - 'current_role': match.group(8).strip(), - 'skills': match.group(9).strip().split(', '), # Split skills into a list - 'location': match.group(10).strip(), - 'remote_work': match.group(11).strip() - }) + # Regular expression to capture profile fields + profile_pattern = re.compile( + r'### (.+?)\n' # Capture the name + r'- \*\*Email\*\*: (.+?)\n' # Capture email + r'- \*\*LinkedIn\*\*: \[(.+?)\]\(https?://.+?\)\n' # Capture only LinkedIn link text + r'- \*\*GitHub\*\*: \[(.+?)\]\(https?://.+?\)\n' # Capture only GitHub link text + r'- \*\*Experience\*\*: (.+?)\n' # Capture experience + r'- \*\*Current Role\*\*: (.+?)\n' # Capture current role + r'- \*\*Skills\*\*: (.+?)\n' # Capture skills + r'- \*\*Location\*\*: (.+?)\n' # Capture location + r'- \*\*Remote Work\*\*: (.+?)\n',# Capture remote work + re.DOTALL # Match across multiple lines + ) + + # Find all profiles in the content + profiles = profile_pattern.findall(content) -# Write to developer.json + # Process and print each profile + profile_data = [] + for profile in profiles: + name, email, linkedin, github, experience, role, skills, location, remote = profile + profile_data.append({ + 'name': name, + 'email': email, + 'linkedin': f'https://{linkedin}', + 'github': f'https://{github}', + 'experience': experience, + 'currentRole': role, + 'skills': skills, + 'location': location, + 'remoteWork': remote + }) + + return profile_data + +# Run the function +profiles = read_profiles('README.md') +developers = [] +for profile in profiles: + print(profile) + developers.append(profile) +# Write to developer.json in the docs folder with open('developer.json', 'w') as json_file: json.dump(developers, json_file, indent=4) - -print(f'Extracted {len(developers)} developers.') diff --git a/docs/index.html b/docs/index.html index 3727800..99af16c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,52 +3,38 @@ - Bangladeshi Tech Professionals Worldwide - + Bangladeshi Tech People + -
-

Bangladeshi Tech Professionals Worldwide

-

A list of Bangladeshi tech professionals working around the world.

-
-
+
+

Bangladeshi Tech Professionals Worldwide

+

A list of Bangladeshi tech professionals working around the world.

+
- + diff --git a/docs/script.js b/docs/script.js new file mode 100644 index 0000000..0c1b528 --- /dev/null +++ b/docs/script.js @@ -0,0 +1,33 @@ +// script.js +async function loadProfiles() { + try { + const response = await fetch('developer.json'); + const developers = await response.json(); + const container = document.getElementById('profile-container'); + + developers.forEach(developer => { + const profileCard = document.createElement('div'); + profileCard.classList.add('profile-card'); + + profileCard.innerHTML = ` +

${developer.name}

+

Email: ${developer.email}

+

Experience: ${developer.experience}

+

Current Role: ${developer.role}

+

Skills: ${developer.skills}

+

Location: ${developer.location}

+

Remote Work: ${developer.remoteWork}

+ + `; + container.appendChild(profileCard); + }); + } catch (error) { + console.error('Error loading developer profiles:', error); + } +} + +// Load profiles on page load +document.addEventListener('DOMContentLoaded', loadProfiles); diff --git a/docs/styles.css b/docs/styles.css index 9ff9e33..4648d95 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -1,41 +1,78 @@ +/* Base styling */ body { font-family: Arial, sans-serif; - background-color: #f4f4f4; + color: #333; margin: 0; - padding: 20px; + padding: 0; + background: #f4f7f6; } -.container { - max-width: 800px; - margin: auto; - padding: 20px; - background: white; - border-radius: 8px; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); +header { + text-align: center; + padding: 2rem; + background: #0077b6; + color: #fff; +} + +header h1 { + font-size: 2.5rem; + margin: 0; +} + +header p { + font-size: 1.2rem; + margin-top: 0.5rem; +} + +/* Profile Container */ +.profile-container { + display: flex; + flex-wrap: wrap; + justify-content: center; + padding: 2rem; } -.card { - background: #ffffff; - border: 1px solid #ddd; +/* Profile Card */ +.profile-card { + background: #fff; border-radius: 8px; - margin: 15px 0; - padding: 15px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + margin: 1rem; + padding: 1.5rem; + width: 300px; + transition: transform 0.3s; +} + +.profile-card:hover { + transform: translateY(-5px); +} + +.profile-card h2 { + font-size: 1.5rem; + color: #0077b6; + margin-bottom: 0.5rem; +} + +.profile-card p { + margin: 0.5rem 0; } -.card h2 { - margin-top: 0; +.profile-card strong { + color: #333; } -.card p { - margin: 5px 0; +/* Profile Links */ +.profile-links { + margin-top: 1rem; } -.card a { - color: #007bff; +.profile-links a { text-decoration: none; + color: #0077b6; + font-weight: bold; + margin-right: 1rem; } -.card a:hover { +.profile-links a:hover { text-decoration: underline; }