Skip to content
Open
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
2 changes: 2 additions & 0 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import ScrollButton from "./Components/ScrollButton/ScrollButton";

import DomainDetails from "./Pages/DomainDetails/DomainDetails";
import Landing from "./Pages/Landing/Landing";
import Contribute from "./Pages/Contribute/Contribute";

import React from "react";
function App() {
Expand All @@ -11,6 +12,7 @@ function App() {
<Router>
<Routes>
<Route path="/" element={<Landing />} />
<Route path="/contribute" element={<Contribute />} />
<Route path="/:id" element={<DomainDetails />} />
</Routes>
</Router>
Expand Down
15 changes: 15 additions & 0 deletions src/Components/Navbar/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,18 @@ function Navbar() {
<a href="#cards" onClick={showNavBar}>
Domains
</a>
<Link to="/contribute" onClick={showNavBar}>
Contribute
</Link>
<button className="nav-btn nav-close-btn">
<FaTimes onClick={showNavBar} />
</button>
</>
) : location.pathname === "/contribute" ? (
<>
<Link to="/" onClick={showNavBar}>
Home
</Link>
<button className="nav-btn nav-close-btn">
<FaTimes onClick={showNavBar} />
</button>
Expand All @@ -49,6 +61,9 @@ function Navbar() {
<a href="#people" onClick={showNavBar}>
People
</a>
<Link to="/contribute" onClick={showNavBar}>
Contribute
</Link>
<button className="nav-btn nav-close-btn">
<FaTimes onClick={showNavBar} />
</button>
Expand Down
135 changes: 135 additions & 0 deletions src/Pages/Contribute/Contribute.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
.contribute-container {
width: 100%;
min-height: 100vh;
background-color: #f5f5f5;
padding-bottom: 50px;
}

.contribute-header {
text-align: center;
padding: 100px 20px 50px;
background: linear-gradient(135deg, #6e8efb, #a777e3);
color: white;
margin-bottom: 40px;
}

.contribute-header h1 {
font-size: 2.5rem;
margin-bottom: 15px;
}

.contribute-header p {
font-size: 1.2rem;
max-width: 600px;
margin: 0 auto;
}

.domains-container, .contribution-types {
max-width: 1200px;
margin: 0 auto 50px;
padding: 0 20px;
}

.domains-container h2, .contribution-types h2 {
text-align: center;
margin-bottom: 30px;
color: #333;
font-size: 2rem;
}

.domains-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
}

.domain-card {
background: white;
border-radius: 8px;
padding: 20px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.domain-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.domain-card h3 {
color: #333;
margin-bottom: 10px;
}

.domain-card p {
color: #666;
margin-bottom: 15px;
font-size: 0.9rem;
}

.explore-link {
display: inline-block;
padding: 8px 15px;
background: linear-gradient(135deg, #6e8efb, #a777e3);
color: white;
text-decoration: none;
border-radius: 4px;
font-weight: 500;
transition: opacity 0.3s ease;
}

.explore-link:hover {
opacity: 0.9;
}

.contribution-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 30px;
}

.contribution-item {
background: white;
border-radius: 8px;
padding: 25px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.contribution-item h3 {
color: #333;
margin-bottom: 15px;
border-bottom: 2px solid #6e8efb;
padding-bottom: 10px;
}

.contribution-item p {
color: #666;
margin-bottom: 15px;
}

.contribution-item ul {
padding-left: 20px;
}

.contribution-item li {
margin-bottom: 8px;
color: #555;
}

@media (max-width: 768px) {
.contribute-header h1 {
font-size: 2rem;
}

.contribute-header p {
font-size: 1rem;
}

.domains-container h2, .contribution-types h2 {
font-size: 1.5rem;
}

.contribution-list {
grid-template-columns: 1fr;
}
}
48 changes: 48 additions & 0 deletions src/Pages/Contribute/Contribute.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import React from "react";
import "./Contribute.css";
import Navbar from "../../Components/Navbar/Navbar";
import contributeData from "../../data/contribute.json";

function Contribute() {
return (
<div className="contribute-container">
<Navbar />
<div className="contribute-header">
<h1>Contribute to Tech Myrmidons</h1>
<p>Join our community by contributing to the following domains</p>
</div>

<div className="domains-container" id="domains">
<h2>Domains to Explore & Contribute</h2>
<div className="domains-grid">
{contributeData.domains.map((domain, index) => (
<div className="domain-card" key={index}>
<h3>{domain.name}</h3>
<p>{domain.description}</p>
<a href={domain.path} className="explore-link">Explore Domain</a>
</div>
))}
</div>
</div>

<div className="contribution-types">
<h2>Suggested Contributions</h2>
<div className="contribution-list">
{contributeData.contributionTypes.map((type, index) => (
<div className="contribution-item" key={index}>
<h3>{type.title}</h3>
<p>{type.description}</p>
<ul>
{type.examples.map((example, i) => (
<li key={i}>{example}</li>
))}
</ul>
</div>
))}
</div>
</div>
</div>
);
}

export default Contribute;
122 changes: 122 additions & 0 deletions src/data/contribute.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"domains": [
{
"name": "Android",
"description": "Mobile app development for Android devices",
"path": "/android"
},
{
"name": "iOS",
"description": "Mobile app development for Apple devices",
"path": "/ios"
},
{
"name": "DevOps",
"description": "Development operations, CI/CD, and infrastructure",
"path": "/devops"
},
{
"name": "Front-End",
"description": "Web front-end technologies and frameworks",
"path": "/frontend"
},
{
"name": "Blockchain",
"description": "Distributed ledger technologies and cryptocurrencies",
"path": "/blockchain"
},
{
"name": "Artificial Intelligence",
"description": "Machine learning, deep learning, and AI applications",
"path": "/ai"
},
{
"name": "AR/VR",
"description": "Augmented and virtual reality technologies",
"path": "/arvr"
},
{
"name": "QA",
"description": "Quality assurance and testing methodologies",
"path": "/qa"
},
{
"name": "Quantum Computing",
"description": "Quantum algorithms and computing technologies",
"path": "/quantum-computing"
},
{
"name": "Product Management",
"description": "Product development and management strategies",
"path": "/pm"
},
{
"name": "IoT",
"description": "Internet of Things devices and ecosystems",
"path": "/iot"
},
{
"name": "UI/UX",
"description": "User interface and experience design",
"path": "/uiux"
},
{
"name": "Cyber Security",
"description": "Security practices and threat protection",
"path": "/cybersecurity"
},
{
"name": "Creative Design",
"description": "Graphic design and creative tools",
"path": "/creative-design"
},
{
"name": "Marketing",
"description": "Digital marketing strategies and tools",
"path": "/marketing"
},
{
"name": "FOSS",
"description": "Free and open source software projects",
"path": "/foss"
}
],
"contributionTypes": [
{
"title": "Add New Technologies/Tools",
"description": "Help expand our knowledge base by adding new technologies and tools for each domain.",
"examples": [
"Add emerging technologies in the domain's JSON files",
"Include detailed descriptions and resource links",
"Ensure proper categorization within the domain structure"
]
},
{
"title": "Add Blogs and Tutorials",
"description": "Share valuable learning resources by adding blogs and tutorials to blog.json.",
"examples": [
"Add high-quality tutorial links in blog.json",
"Include diverse content covering beginner to advanced topics",
"Provide brief descriptions of what readers will learn"
]
},
{
"title": "Add People to Follow",
"description": "Suggest industry experts and thought leaders in follow.json with their photos in the images directory.",
"examples": [
"Add influential people in the domain to follow.json",
"Include their social media profiles and areas of expertise",
"Add professional photos to the images directory"
]
},
{
"title": "Update Yearly Trends",
"description": "Keep the platform current by updating yearly JSON files with the latest tech trends.",
"examples": [
"Update yearly JSON files with current technology trends",
"Remove outdated or deprecated technologies",
"Add emerging tools and frameworks gaining popularity"
]
}
]
}