diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e5cab4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Dependencies +/node_modules + +# IDEs and editors +/.idea +*.sw* +*.log + +# OS files +.DS_Store + +# Build +/dist +/build + +# Misc +.env +.env.local +.env.development.local +.env.test.local +.env.production.local \ No newline at end of file diff --git a/README.md b/README.md index 65d521e..5074199 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,48 @@ -# pr-pilot-demo-react -A demo project showcasing PR Pilot's ability to quickly create new Django project +# PR Pilot Demo React + +This project is a React application that uses TypeScript and yarn for dependency management. It follows best practices for React development. + +## Getting Started + +To get started with this project, clone the repository and install the dependencies using yarn: + +```bash +yarn install +``` + +To run the application in development mode, use: + +```bash +yarn start +``` + +This will start the React application and open it in your default web browser. + +## Project Structure + +The project follows a structured approach to organize the codebase efficiently: + +``` +pr-pilot-demo-react/ +├── public/ +│ ├── index.html +│ └── favicon.ico +├── src/ +│ ├── components/ +│ │ └── App.tsx +│ ├── styles/ +│ │ └── App.css +│ ├── types/ +│ ├── utils/ +│ ├── index.tsx +│ └── react-app-env.d.ts +├── .gitignore +├── package.json +├── tsconfig.json +├── yarn.lock +└── README.md +``` + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..b61afe2 --- /dev/null +++ b/package.json @@ -0,0 +1,35 @@ +{ + "name": "pr-pilot-demo-react", + "version": "1.0.0", + "description": "A React application using TypeScript and yarn.", + "main": "src/index.tsx", + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "typescript": "^5.4.2" + }, + "devDependencies": { + "@types/react": "^18.2.67", + "@types/react-dom": "^18.2.67" + }, + "license": "MIT", + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..72e81ef --- /dev/null +++ b/public/index.html @@ -0,0 +1,11 @@ + + + + + + PR Pilot Demo React + + +
+ + \ No newline at end of file diff --git a/src/components/App.tsx b/src/components/App.tsx new file mode 100644 index 0000000..1c96b32 --- /dev/null +++ b/src/components/App.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import '../styles/App.css'; + +function App() { + return ( +
+
+

Hello PR Pilot

+
+
+ ); +} + +export default App; \ No newline at end of file diff --git a/src/index.tsx b/src/index.tsx new file mode 100644 index 0000000..d6909a3 --- /dev/null +++ b/src/index.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import './styles/App.css'; +import App from './components/App'; + +ReactDOM.render( + + + , + document.getElementById('root') +); \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..038dc67 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"] +} \ No newline at end of file