Skip to content

Commit c65611c

Browse files
committed
Added new project, updated blog and project cards
1 parent e905c56 commit c65611c

File tree

6 files changed

+29
-27
lines changed

6 files changed

+29
-27
lines changed
187 KB
Loading

src/data/projects.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,20 @@ export const projects: Project[] = [
4949
startDate: "2024-01",
5050
},
5151
{
52-
id: "sp500-analytics",
53-
title: "S&P 500 Analytics",
52+
id: "pyspark-stock-analysis-pipeline",
53+
title: "Stock Analysis Dashboard",
5454
description:
55-
"Comprehensive market-analysis dashboard using PostgreSQL, Python & Next.js.",
55+
"A comprehensive stock market analysis platform built with Apache Spark, Delta Lake, and Dash.",
5656
longDescription:
57-
"A financial analytics platform providing comprehensive market analysis tools with real-time data visualization and historical trend analysis.",
58-
image: "/assets/websites/stock-market-dashboard.png",
59-
technologies: ["NextJS", "TailwindCSS", "TypeScript", "Vercel"],
57+
"This project implements a modern data engineering pipeline following the medallion architecture pattern to ingest, process, and visualize stock market data from Alpha Vantage API.",
58+
image: "/assets/websites/AlphaVantageDashboard.png",
59+
technologies: ["Plotly", "Python", "PySpark", "Delta Lake"],
6060
status: "current",
61-
githubUrl: "https://github.com/djmartin2019/stock-analysis-project",
61+
githubUrl:
62+
"https://github.com/djmartin2019/pyspark-stock-analysis-pipeline",
6263
featured: true,
6364
category: "Finance",
64-
startDate: "2025-03",
65+
startDate: "2025-09",
6566
},
6667
{
6768
id: "texas-frontstep",

src/layouts/Layout.astro

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,22 @@ const imageURL = image.startsWith('http') ? image : new URL(image, Astro.site).h
4646
<meta property="og:title" content={title} />
4747
<meta property="og:description" content={description} />
4848
<meta property="og:image" content={imageURL} />
49-
<meta property="og:image:width" content="1200" />
50-
<meta property="og:image:height" content="630" />
49+
<meta property="og:image:width" content="1024" />
50+
<meta property="og:image:height" content="1024" />
5151
<meta property="og:image:alt" content={title} />
5252
<meta property="og:site_name" content="DJM Tech" />
5353
<meta property="og:locale" content="en_US" />
5454

5555
<!-- Twitter -->
56-
<meta name="twitter:card" content="summary_large_image" />
56+
<meta name="twitter:card" content="summary" />
5757
<meta name="twitter:site" content="@djmartin2019" />
5858
<meta name="twitter:creator" content="@djmartin2019" />
5959
<meta name="twitter:url" content={canonicalURL} />
6060
<meta name="twitter:title" content={title} />
6161
<meta name="twitter:description" content={description} />
6262
<meta name="twitter:image" content={imageURL} />
6363
<meta name="twitter:image:alt" content={title} />
64+
<meta name="twitter:domain" content="djm-tech.dev" />
6465

6566
<!-- Additional LinkedIn-specific meta tags -->
6667
<meta name="linkedin:owner" content="davidjmartin2025" />

src/pages/blog.astro

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ const allTags = await getAllTags();
5353
<h2 class="text-2xl font-bold blog-title mb-8">Featured Posts</h2>
5454
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
5555
{blogPosts.filter(post => post.featured).slice(0, 3).map((post) => (
56-
<article class="featured-post neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300">
56+
<article class="featured-post neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 flex flex-col">
5757
<div class="h-64 blog-image-bg flex items-center justify-center overflow-hidden">
5858
<Image
5959
src={post.image || "/assets/og-default.png"}
@@ -64,7 +64,7 @@ const allTags = await getAllTags();
6464
loading="lazy"
6565
/>
6666
</div>
67-
<div class="p-6">
67+
<div class="p-6 flex flex-col flex-grow">
6868
<div class="flex items-center text-sm blog-meta mb-3">
6969
<span>{new Date(post.date).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}</span>
7070
<span class="mx-2">•</span>
@@ -79,7 +79,7 @@ const allTags = await getAllTags();
7979
<span class="px-2 py-1 blog-tag text-xs rounded">{tag}</span>
8080
))}
8181
</div>
82-
<a href={`/blog/${post.slug}`} class="blog-link">
82+
<a href={`/blog/${post.slug}`} class="blog-link mt-auto">
8383
Read More →
8484
</a>
8585
</div>
@@ -95,7 +95,7 @@ const allTags = await getAllTags();
9595
<h2 class="text-2xl font-bold section-title mb-8">All Posts</h2>
9696
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8" id="posts-grid">
9797
{blogPosts.map((post) => (
98-
<article class={`blog-post neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 ${post.tags.join(' ')}`}>
98+
<article class={`blog-post neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 ${post.tags.join(' ')} flex flex-col`}>
9999
<div class="h-64 blog-image-bg flex items-center justify-center overflow-hidden">
100100
<Image
101101
src={post.image || "/assets/og-default.png"}
@@ -106,7 +106,7 @@ const allTags = await getAllTags();
106106
loading="lazy"
107107
/>
108108
</div>
109-
<div class="p-6">
109+
<div class="p-6 flex flex-col flex-grow">
110110
<div class="flex items-center text-sm blog-meta mb-3">
111111
<span>{new Date(post.date).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}</span>
112112
<span class="mx-2">•</span>
@@ -125,7 +125,7 @@ const allTags = await getAllTags();
125125
<span class="px-2 py-1 blog-tag text-xs rounded">{tag}</span>
126126
))}
127127
</div>
128-
<a href={`/blog/${post.slug}`} class="blog-link">
128+
<a href={`/blog/${post.slug}`} class="blog-link mt-auto">
129129
Read More →
130130
</a>
131131
</div>

src/pages/index.astro

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ const allSkills = getAllSkills();
109109

110110
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
111111
{featuredProjects.slice(0, 3).map((project) => (
112-
<div class="neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300">
112+
<div class="neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 flex flex-col">
113113
<div class="h-64 project-image-bg flex items-center justify-center overflow-hidden">
114114
<Image
115115
src={project.image}
@@ -119,7 +119,7 @@ const allSkills = getAllSkills();
119119
class="w-full h-full object-cover"
120120
/>
121121
</div>
122-
<div class="p-6">
122+
<div class="p-6 flex flex-col flex-grow">
123123
<div class="flex items-center justify-between mb-2">
124124
<h3 class="text-xl font-semibold project-title">{project.title}</h3>
125125
<span class={`px-2 py-1 text-xs font-medium rounded-full status-badge status-${project.status}`}>
@@ -132,7 +132,7 @@ const allSkills = getAllSkills();
132132
<span class="px-2 py-1 tech-tag text-xs rounded">{tech}</span>
133133
))}
134134
</div>
135-
<div class="flex flex-col sm:flex-row gap-3">
135+
<div class="flex flex-col sm:flex-row gap-3 mt-auto">
136136
{project.liveUrl && (
137137
<a href={project.liveUrl} target="_blank" rel="noopener noreferrer" class="primary-cta-button flex items-center justify-center">
138138
<ExternalLink class="h-4 w-4 mr-2" />
@@ -169,7 +169,7 @@ const allSkills = getAllSkills();
169169

170170
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
171171
{recentPosts.slice(0, 3).map((post) => (
172-
<article class="neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300">
172+
<article class="neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 flex flex-col">
173173
<div class="h-48 blog-image-bg flex items-center justify-center overflow-hidden">
174174
<Image
175175
src={post.image || "/assets/og-default.png"}
@@ -180,7 +180,7 @@ const allSkills = getAllSkills();
180180
loading="lazy"
181181
/>
182182
</div>
183-
<div class="p-6">
183+
<div class="p-6 flex flex-col flex-grow">
184184
<div class="flex items-center text-sm blog-meta mb-2">
185185
<span>{new Date(post.date).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' })}</span>
186186
<span class="mx-2">•</span>
@@ -193,7 +193,7 @@ const allSkills = getAllSkills();
193193
<span class="px-2 py-1 blog-tag text-xs rounded">{tag}</span>
194194
))}
195195
</div>
196-
<a href={`/blog/${post.slug}`} class="blog-link">
196+
<a href={`/blog/${post.slug}`} class="blog-link mt-auto">
197197
Read More →
198198
</a>
199199
</div>

src/pages/projects.astro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const roadmapProjects = getProjectsByStatus('roadmap');
5858
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
5959
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8" id="projects-grid">
6060
{projects.map((project) => (
61-
<div class={`project-card neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 ${project.status}`}>
61+
<div class={`project-card neon-card overflow-hidden hover:shadow-neon-glow transition-all duration-300 ${project.status} flex flex-col`}>
6262
<div class="h-48 project-image-bg flex items-center justify-center overflow-hidden">
6363
<Image
6464
src={project.image}
@@ -68,7 +68,7 @@ const roadmapProjects = getProjectsByStatus('roadmap');
6868
class="w-full h-full object-cover"
6969
/>
7070
</div>
71-
<div class="p-6">
71+
<div class="p-6 flex flex-col flex-grow">
7272
<div class="flex items-center justify-between mb-3">
7373
<h3 class="text-xl font-semibold project-title">{project.title}</h3>
7474
<span class={`px-3 py-1 text-xs font-medium rounded-full status-badge status-${project.status}`}>
@@ -93,12 +93,12 @@ const roadmapProjects = getProjectsByStatus('roadmap');
9393
</div>
9494

9595
{project.longDescription && (
96-
<div class="mb-4">
96+
<div class="mb-4 flex-grow">
9797
<p class="text-sm project-description">{project.longDescription}</p>
9898
</div>
9999
)}
100100

101-
<div class="flex flex-col sm:flex-row gap-3">
101+
<div class="flex flex-col sm:flex-row gap-3 mt-auto">
102102
{project.liveUrl && (
103103
<a href={project.liveUrl} target="_blank" rel="noopener noreferrer" class="primary-cta-button flex items-center justify-center">
104104
<ExternalLink class="h-4 w-4 mr-2" />

0 commit comments

Comments
 (0)