Skip to content

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

 
 
 

Contributors