Skip to content

A modern, responsive Todo application built with Vue 3, Vite, and FontAwesome icons. This application provides an intuitive interface for managing daily tasks and staying productive.

Notifications You must be signed in to change notification settings

mina20088/ToDoApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“‹ ToDoApp

Stay organized and get things done

A modern, responsive Todo application built with Vue 3, Vite, and FontAwesome icons. This application provides an intuitive interface for managing daily tasks and staying productive.

Vue.js Vite FontAwesome Pinia

โœจ Features

  • Modern Vue 3 Composition API - Built with the latest Vue.js features
  • Component-based Architecture - Reusable BaseCard and BaseInput components
  • Responsive Design - Optimized for both desktop and mobile devices
  • Beautiful UI - Clean, modern interface with gradient header styling
  • Icon Integration - FontAwesome icons for enhanced user experience
  • Flexible Layout System - Slot-based components for maximum customization
  • State Management Ready - Pinia integration for scalable state handling
  • Routing Ready - Vue Router integration for scalable navigation
  • Development Tools - Hot reload, ESLint, and Prettier for optimal DX

๐Ÿ—๏ธ Project Structure

ToDoApp/
โ”œโ”€โ”€ public/
โ”‚   โ””โ”€โ”€ favicon.ico                 # Application favicon
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ”œโ”€โ”€ fonts.css              # Font declarations
โ”‚   โ”‚   โ”œโ”€โ”€ main.css               # Global styles
โ”‚   โ”‚   โ””โ”€โ”€ fonts/
โ”‚   โ”‚       โ””โ”€โ”€ Montserrat/        # Montserrat font family
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ BaseCard.vue           # Reusable card component with slot system
โ”‚   โ”‚   โ””โ”€โ”€ BaseInput.vue          # Reusable input component
โ”‚   โ”œโ”€โ”€ router/
โ”‚   โ”‚   โ””โ”€โ”€ index.js               # Vue Router configuration
โ”‚   โ”œโ”€โ”€ stores/                    # Pinia stores directory
โ”‚   โ”œโ”€โ”€ App.vue                    # Root component with todo layout
โ”‚   โ””โ”€โ”€ main.js                    # Application entry point
โ”œโ”€โ”€ eslint.config.js               # ESLint configuration
โ”œโ”€โ”€ jsconfig.json                  # JavaScript configuration
โ”œโ”€โ”€ package.json                   # Dependencies and scripts
โ”œโ”€โ”€ README.md                      # Project documentation
โ””โ”€โ”€ vite.config.js                # Vite configuration

๐Ÿš€ Tech Stack

Core Technologies

  • Vue.js 3 - Progressive JavaScript framework
  • Vite - Next-generation frontend tooling
  • Pinia - State management for Vue.js
  • Vue Router - Official router for Vue.js

UI & Icons

  • FontAwesome - Comprehensive icon library
  • Montserrat Font - Modern, professional typography
  • CSS3 - Modern styling with gradients and responsive design

Development Tools

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js: ^20.19.0 || >=22.12.0
  • npm or yarn package manager

Setup Instructions

  1. Clone the repository

    git clone <repository-url>
    cd ToDoApp
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Open your browser Navigate to http://localhost:5173

๐Ÿ› ๏ธ Available Scripts

Command Description
npm run dev Start development server with hot-reload
npm run build Build for production
npm run preview Preview production build locally
npm run lint Lint and auto-fix code issues
npm run format Format code with Prettier

๐ŸŽจ Component Architecture

BaseCard Component

A flexible, reusable card component featuring:

  • Slot-based Architecture - Header and content slots for maximum flexibility
  • Responsive Design - Mobile-first approach with breakpoint optimization
  • Modern Styling - Clean design with rounded corners and proper spacing
  • Modular Structure - Separation of concerns between header and body content
<BaseCard>
  <template #header>
    <!-- Header content (optional) -->
  </template>
  <!-- Main content goes here -->
</BaseCard>

BaseInput Component

A styled input component with:

  • Dynamic Props - Type and placeholder customization
  • Focus Styling - Custom focus states with accent colors
  • Consistent Design - Matches the overall app aesthetic
  • Accessibility - Proper input labeling and states
<BaseInput type="text" placeholder="Enter your text..." />

๐Ÿ”ง Configuration

Vite Configuration

  • Vue plugin integration
  • Vue DevTools for development
  • Modern build optimizations

ESLint & Prettier

  • Vue.js specific rules
  • Prettier integration for consistent formatting
  • Modern JavaScript standards

๐Ÿš€ Deployment

Build for Production

npm run build

The built files will be in the dist/ directory, ready for deployment to any static hosting service.

Deployment Options

  • Vercel - Zero-configuration deployment
  • Netlify - Continuous deployment from Git
  • GitHub Pages - Free static hosting
  • Firebase Hosting - Google's hosting platform

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“ Development Guidelines

  • Follow Vue.js style guide
  • Use Composition API for new components
  • Maintain responsive design principles
  • Ensure proper ESLint compliance
  • Write meaningful commit messages

๐Ÿ”ฎ Future Enhancements

  • Task CRUD operations
  • Local storage persistence
  • Task categories and filters
  • Due date functionality
  • Dark/Light theme toggle
  • Task priority levels
  • Export/Import functionality

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™‹โ€โ™‚๏ธ Support

If you have any questions or need help with setup, please feel free to open an issue or reach out to the maintainers.


Built with โค๏ธ using Vue.js and modern web technologies

About

A modern, responsive Todo application built with Vue 3, Vite, and FontAwesome icons. This application provides an intuitive interface for managing daily tasks and staying productive.

Resources

Stars

Watchers

Forks

Packages

No packages published