Skip to content
Open
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
29 changes: 29 additions & 0 deletions .github/workflows/development.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Development Workflow

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
test-and-lint:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Run ESLint
run: npm run lint

- name: Run tests
run: npm test
34 changes: 34 additions & 0 deletions .github/workflows/production.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Production Workflow

on:
push:
branches: [ main ]
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build

- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
working-directory: ./
vercel-args: '--prod'
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
99 changes: 48 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,68 @@
# 🚀 Internship Task – ToDo App using React
# Modern ToDo App

Your challenge is to build a clean, functional, and responsive **ToDo App** using **React**. This task will showcase your understanding of front-end development, component structure, and user interaction.
[![CI/CD](https://github.com/aljojoby9/Internship-Task/actions/workflows/development.yml/badge.svg)](https://github.com/aljojoby9/Internship-Task/actions/workflows/development.yml)

---
A beautiful and functional ToDo application built with React, TypeScript, and Tailwind CSS. This app allows you to manage your tasks with ease, featuring a clean and responsive design.

## 📝 Task Description
## Features

Build a ToDo App that allows users to:

- Add tasks
- Mark tasks as completed or not
- Delete tasks

---

## 🎯 Required Features

### 🧾 Core Requirements

- ✅ Add new tasks
- ✅ Display tasks
- ✨ Add, edit, and delete tasks
- ✅ Mark tasks as complete/incomplete
- ✅ Delete tasks

### ✨ Bonus (Optional)
- 🔄 Filter tasks by status (All/Active/Completed)
- 💾 Automatic saving using localStorage
- 📱 Fully responsive design
- 🎨 Modern UI with dark/light mode support

- 🔄 Filter tasks: All / Active / Completed
- 💾 Persist tasks using `localStorage`
- 📱 Make it mobile responsive
- 🎨 Use modern UI libraries like [ShadCN UI](https://ui.shadcn.com/) for better design
## Getting Started

---
### Prerequisites

## 🛠 Tech Stack Guidelines
- Node.js (v16 or later)
- npm or yarn

- You **must use React**.
- You can use **Vite** (recommended for faster setup).
- You may use **ShadCN UI**, **Tailwind CSS**, or any other modern styling solution.
### Installation

---
1. Clone the repository:
```bash
git clone https://github.com/yourusername/todo-app.git
cd todo-app
```

## 🧠 Tips
2. Install dependencies:
```bash
npm install
# or
yarn
```

- Use functional components and hooks (`useState`, `useEffect`, etc.)
- Keep your components modular
- Ensure a smooth and simple user experience
3. Start the development server:
```bash
npm run dev
# or
yarn dev
```

---
4. Open [http://localhost:3000](http://localhost:3000) in your browser.

## 🔧 Submission Instructions
## Building for Production

1. **Fork** this repository.
2. Build your app there using Vite + React or any other stack.
3. Once you're done, **create a Pull Request**.
4. Make sure your app runs correctly and looks good on different screen sizes.
5. HOST YOUR WEBSITE WITH PLATFORMS LIKE [VERCEL](https://vercel.com/).
To create a production build:

---
```bash
npm run build
# or
yarn build
```

## 💬 Need Help?
## Technologies Used

If you get stuck:
- Use Google or AI tools like ChatGPT
- Check out [Vite Docs](https://vitejs.dev/guide/)
- Explore [ShadCN UI](https://ui.shadcn.com/docs/installation)
- Get in touch with your team lead or team mates for support.
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Radix UI
- Lucide Icons

---
## License

## 🙌 Good Luck & Happy Coding!
MIT
33 changes: 33 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'

export default [
{ ignores: ['dist'] },
{
files: ['**/*.{js,jsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
]
14 changes: 14 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="A modern ToDo app built with React, TypeScript, and Tailwind CSS" />
<title>ToDo App</title>
</head>
<body class="min-h-screen bg-background">
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
13 changes: 13 additions & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
[build]
command = "npm run build"
publish = "dist"

[dev]
command = "npm run dev"
port = 5173
publish = "dist"

[[redirects]]
from = "/*"
to = "/index.html"
status = 200
Loading