Skip to content

Commit 8f8a681

Browse files
committed
Update README.md to provide an overview of the Reacting project and its learning objectives
1 parent 6037c9a commit 8f8a681

2 files changed

Lines changed: 99 additions & 60 deletions

File tree

README.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Reacting
2+
3+
A collection of React learning projects, each demonstrating different concepts and techniques.
4+
5+
I'm building these apps to learn React from the ground up. Each project is a self-contained application that focuses on specific React features or patterns. While simple, they're designed with best practices and well-documented code, which might also help others learning React.
6+
7+
All apps are hosted on GitHub Pages: [https://reacting.thehww.app/](https://reacting.thehww.app/)
8+
9+
## Projects
10+
11+
### [hello-react](./hello-react)
12+
13+
An interactive greeting app demonstrating React state management and event handlers.
14+
15+
**Live demo:** [https://reacting.thehww.app/hello-react/](https://reacting.thehww.app/hello-react/)
16+
17+
**What I learned:**
18+
- Component state with `useState`
19+
- Props and event handlers
20+
- TypeScript with React
21+
- Tailwind CSS integration
22+
- GitHub Pages deployment
23+
24+
## Tech stack
25+
26+
All projects use:
27+
- **React 19** with TypeScript
28+
- **Vite 8** for fast builds and development
29+
- **Tailwind CSS 4** for styling
30+
- Modern build tools and optimizations
31+
32+
## About
33+
34+
These projects are created by [The Hello World Writer](https://www.thehelloworldwriter.com/), documenting my journey learning React and modern web development.
35+
36+
Each project aims to be:
37+
- **Simple** - Focused on specific concepts without unnecessary complexity
38+
- **Well-documented** - Clear code comments and comprehensive READMEs
39+
- **Best practices** - Following current React patterns and conventions
40+
- **Educational** - Useful for anyone learning similar concepts
41+
42+
## License
43+
44+
MIT License - Copyright (c) 2025 [The Hello World Writer](https://www.thehelloworldwriter.com/)

hello-react/README.md

Lines changed: 55 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,68 @@
1-
# React + TypeScript + Vite
1+
# hello-react
22

3-
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
3+
An interactive React greeting app that lets you customize your hello message in real-time.
44

5-
Currently, two official plugins are available:
5+
Live demo: [https://reacting.thehww.app/hello-react/](https://reacting.thehww.app/hello-react/)
66

7-
- [@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
8-
- [@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
7+
## What it does
98

10-
## React Compiler
9+
This app displays a simple greeting dialog where you can:
10+
- Type any name into the input field to see "Hello, [name]!" update live
11+
- Click the shuffle button to randomly select from predefined names
12+
- Watch as the greeting updates dynamically throughout the interface
1113

12-
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).
14+
I built this as my first React project to practice fundamental concepts like state management, event handlers, and component composition. The app uses React 19's latest features with TypeScript for type safety.
1315

14-
## Expanding the ESLint configuration
16+
## Tech stack
1517

16-
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
18+
- **React 19** with TypeScript for type-safe components
19+
- **Vite 8** (beta) for fast builds and HMR
20+
- **Tailwind CSS 4** for utility-first styling
21+
- Deployed to GitHub Pages
1722

18-
```js
19-
export default defineConfig([
20-
globalIgnores(['dist']),
21-
{
22-
files: ['**/*.{ts,tsx}'],
23-
extends: [
24-
// Other configs...
23+
## Project structure
2524

26-
// Remove tseslint.configs.recommended and replace with this
27-
tseslint.configs.recommendedTypeChecked,
28-
// Alternatively, use this for stricter rules
29-
tseslint.configs.strictTypeChecked,
30-
// Optionally, add this for stylistic rules
31-
tseslint.configs.stylisticTypeChecked,
25+
```
26+
src/
27+
├── App.tsx # Main application component
28+
├── components/
29+
│ ├── BackgroundDecoration.tsx # Floating greeting text
30+
│ ├── GreetingDialog.tsx # Interactive dialog box
31+
│ └── SvgIcon.tsx # SVG icon wrapper
32+
└── constants/
33+
└── shuffleWords.ts # Array of names for shuffle feature
34+
```
35+
36+
## Running locally
3237

33-
// Other configs...
34-
],
35-
languageOptions: {
36-
parserOptions: {
37-
project: ['./tsconfig.node.json', './tsconfig.app.json'],
38-
tsconfigRootDir: import.meta.dirname,
39-
},
40-
// other options...
41-
},
42-
},
43-
])
38+
Install dependencies:
39+
```bash
40+
npm install
4441
```
4542

46-
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47-
48-
```js
49-
// eslint.config.js
50-
import reactX from 'eslint-plugin-react-x'
51-
import reactDom from 'eslint-plugin-react-dom'
52-
53-
export default defineConfig([
54-
globalIgnores(['dist']),
55-
{
56-
files: ['**/*.{ts,tsx}'],
57-
extends: [
58-
// Other configs...
59-
// Enable lint rules for React
60-
reactX.configs['recommended-typescript'],
61-
// Enable lint rules for React DOM
62-
reactDom.configs.recommended,
63-
],
64-
languageOptions: {
65-
parserOptions: {
66-
project: ['./tsconfig.node.json', './tsconfig.app.json'],
67-
tsconfigRootDir: import.meta.dirname,
68-
},
69-
// other options...
70-
},
71-
},
72-
])
43+
Start the development server:
44+
```bash
45+
npm run dev
7346
```
47+
48+
Build for production:
49+
```bash
50+
npm run build
51+
```
52+
53+
Preview production build:
54+
```bash
55+
npm run preview
56+
```
57+
58+
## What I learned
59+
60+
- Managing component state with `useState`
61+
- Passing props and event handlers between components
62+
- Building reusable components with TypeScript interfaces
63+
- Configuring Vite for GitHub Pages deployment
64+
- Using Tailwind CSS with modern CSS features
65+
66+
## License
67+
68+
MIT License - Copyright (c) 2025 [The Hello World Writer](https://www.thehelloworldwriter.com/)

0 commit comments

Comments
 (0)