⚡ Smart Energy Dashboard for Tesla
A Tesla-connected energy dashboard that tracks charge sessions, drives, and idle drain in real time — with an upcoming Machine Learning Neural Network prediction model to understand charge and usage trends to predict on when and for how long to charge for.
Key Features
- ✅ Tesla API Integration: Live vehicle data via TeslaPy with secure token-based authentication
- ✅ Real-Time Snapshot: Auto-cached JSON updates when vehicle is online and JSON hasn't been updated for 5 minutes or more
- ✅ Event Logging: Charge, drive, and idle sessions logged to PostgreSQL with timestamps and classification with deduplication
- ✅ RESTful API: Flask routes for current status and recent event history
- ✅ Apple-Inspired UI: Beautiful frontend displaying live battery status and event history
- Coming Soon: Machine Learning and AI model to predict next charge window and required duration
Skills Gained & Enhanced
- ✅ Learned how to work with the Tesla API using OAuth and refresh tokens
- ✅ Improved my ability to throttle data collection to avoid API rate limits
- ✅ Designed event-driven logging (detecting when charge/drive/idle happens)
- ✅ Built custom Flask API endpoints and integrated them into a frontend
- ✅ Strengthened my use of PostgreSQL and JSON caching for scalable data flow
- ✅ Reinforced Python file handling, timestamp conversion, and backend/frontend integration
What This Project Taught Me
- ✅ The importance of minimizing unnecessary API calls for real-world services
- ✅ How to structure backend services to be both event-based and efficient
- ✅ How to expose backend logic to a web interface using APIs cleanly
- ✅ How to prepare a project foundation for future machine learning integration
This project is a current project and some features may be unavailable depending on what I am currently working on within the project
Genotype Classification Algorithm
💡 A Python-based algorithm that classifies genetic test samples as "NORM" (normal) or "MUT" based on multiplexing test results.
🔍 Features
- ✅ Classifies sample IDs as "NORM" or "MUT"
- ✅ Detects contradictions and returns "INCONSISTENT"
- ✅ Identifies cases where classification is impossible ("NONUNIQUE")
🛠 How It Works
1️⃣ Enter Test Data
Each test consists of a genotype (NORM or MUT) followed by sample IDs.
3
NORM,100,110
MUT,110,12
NORM,200,300
2️⃣ How the Algorithm Determines "MUT" Samples
- If a test case is "NORM", all listed samples are immediately marked "NORM".
- If a test case is "MUT" and some sample IDs are already "NORM", the remaining unknown sample must be "MUT".
- If multiple "MUT" test cases contain only unknown samples, the algorithm returns "NONUNIQUE".
3️⃣ Handling Edge Cases
- ⚠️ "INCONSISTENT" is returned if a sample is marked "NORM" in one test but must be "MUT" in another.
- ⚠️ "NONUNIQUE" is returned when there isn’t enough information to uniquely determine a "MUT" sample.
Example Outputs
✅ Case Where "MUT" Can Be Determined
Input:
3
NORM,100,110
MUT,110,12
NORM,200,300
Output:
Sample ID Genotype
12 MUT
100 NORM
110 NORM
200 NORM
300 NORM
⚠️ Case That Results in "INCONSISTENT"
Input:
4
NORM,0,1
MUT,1,2
NORM,1,3
NORM,2,3
Output:
INCONSISTENT
⚠️ Case That Results in "NONUNIQUE"
Input:
2
MUT,1,2
MUT,2,3
Output:
NONUNIQUE
Task Management App
A full-stack web app for managing personal to-do lists with secure user authentication and a PostgreSQL backend.
Key Features
- ✅ User Authentication: Secure login and registration with JWTs and hashed passwords
- ✅ Task Management: Add, edit, delete, and persist tasks per user
- ✅ Multi-User Support: Isolated task lists for each account
- ✅ RESTful API: Built with Node.js, Express, and PostgreSQL
- ✅ Modern UI: Mobile-friendly, Apple-like design using HTML, CSS, and JavaScript
- ✅ Cloud Hosted: Deployed using AWS RDS and integrated with Flask frontend
While I no longer have this project for testing as it is expensive to host the database full time on AWS. I have the code on github and I'd love for you to take a look!