Skip to content

Commit 328a146

Browse files
committed
Add DTE Rates for Home Assistant to portfolio
1 parent f051ed7 commit 328a146

1 file changed

Lines changed: 27 additions & 7 deletions

File tree

frontend/src/pages/Portfolio.tsx

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@ import { motion } from 'framer-motion';
22

33
const Portfolio = () => {
44
const projects = [
5+
{
6+
title: 'DTE Rates for Home Assistant',
7+
description: 'A Home Assistant custom integration that pulls the official DTE residential electric rate card PDF, parses rates dynamically, and exposes import/export price entities that track time-of-day and season.',
8+
tech: ['Python', 'Home Assistant', 'HACS', 'Lovelace'],
9+
gradient: 'from-yellow-500 to-orange-500',
10+
link: 'https://github.com/javaDevJT/DTE-Rates-for-Home-Assistant'
11+
},
512
{
613
title: 'Interactive Dashboard',
714
description: 'A sleek dashboard for monitoring automotive performance data with real-time visualizations.',
@@ -81,13 +88,26 @@ const Portfolio = () => {
8188
</span>
8289
))}
8390
</div>
84-
<motion.button
85-
whileHover={{ scale: 1.05 }}
86-
whileTap={{ scale: 0.95 }}
87-
className="bg-gradient-to-r from-blue-500 to-purple-600 text-white px-6 py-2 rounded-full font-semibold shadow-lg hover:shadow-xl transition"
88-
>
89-
View Project
90-
</motion.button>
91+
{project.link ? (
92+
<motion.a
93+
href={project.link}
94+
target="_blank"
95+
rel="noopener noreferrer"
96+
whileHover={{ scale: 1.05 }}
97+
whileTap={{ scale: 0.95 }}
98+
className="inline-block bg-gradient-to-r from-blue-500 to-purple-600 text-white px-6 py-2 rounded-full font-semibold shadow-lg hover:shadow-xl transition"
99+
>
100+
View Project
101+
</motion.a>
102+
) : (
103+
<motion.button
104+
whileHover={{ scale: 1.05 }}
105+
whileTap={{ scale: 0.95 }}
106+
className="bg-gradient-to-r from-blue-500 to-purple-600 text-white px-6 py-2 rounded-full font-semibold shadow-lg hover:shadow-xl transition"
107+
>
108+
View Project
109+
</motion.button>
110+
)}
91111
</div>
92112
</motion.div>
93113
))}

0 commit comments

Comments
 (0)