Skip to content
Merged

V1 #11

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
42 changes: 33 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,40 @@
# React + Vite
# Luan Tran - Portfolio Website

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
My personal portfolio showcasing my journey as a software engineer and Master's student in Applied Computer Science at Concordia University. Built with React and Tailwind CSS, this site reflects my bilingual background (English/French) and my passion for clean, functional design.

Currently, two official plugins are available:
**Live Site**: [portfolio.luantran.dev](https://portfolio.luantran.dev)

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
- Portfolio: [portfolio.luantran.dev](https://portfolio.luantran.dev)
- LinkedIn: [linkedin.com/in/theluantran](https://linkedin.com/in/theluantran)
- GitHub: [@luantran](https://github.com/luantran)

## React Compiler
Currently working on: ML/NLP projects, LeetCode practice, and building better developer tools.

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).

## Expanding the ESLint configuration
## Features

**Why I Built It This Way**

- **Bilingual Interface**: Growing up in Montreal and teaching French at Cégep Marie-Victorin, I wanted my portfolio to be accessible to both my English-speaking tech colleagues and French-speaking students. Language preference persists across sessions.
- **Responsive Design**: After years of building full-stack applications at companies like Broadsign and Ericsson, I've learned that mobile-first isn't optional—it's essential. The navigation adapts from a sidebar on desktop to a bottom bar on mobile.
- **Clean, Minimal Aesthetic**: Inspired by my background in both development and teaching, I opted for a gradient background with glass-morphism effects that's professional but not corporate.
- **Version Control for Portfolio Iterations**: As someone constantly learning and evolving (currently diving deep into machine learning and NLP), I built in support to deploy multiple portfolio versions. Each significant update gets its own branch and deployment path.

## Tech Stack

**The Tools I Chose (and Why)**

### Core Technologies
- **React 19.2** - I've been working with React since my time at Broadsign, and it's become my go-to for building interactive UIs
- **Vite 7.2** - After dealing with slower build tools in enterprise environments, Vite's speed is refreshing. Using Rolldown for even faster builds
- **Tailwind CSS 4.1** - Utility-first CSS lets me iterate quickly without context-switching between files

### Additional Libraries
- **lucide-react** & **react-icons** - A mix of modern icons and Font Awesome classics for the tech stack I actually use

### Development Tools
- **ESLint** - Code linting
- **PostCSS** - CSS processing
- **GitHub Actions** - CI/CD pipeline


If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>luantran.github.io</title>
<title>Luan Tran - Portfolio</title>
</head>
<body>
<div id="root"></div>
Expand Down