Skip to content

decode2/TaskManagerApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 TaskManagerApp

A modern, full-stack task management application built with React 19, TypeScript, ASP.NET Core 8, and MySQL. Features a beautiful, responsive interface with dark/light mode, calendar view, and seamless local network access.

✨ Features

  • 🎨 Modern UI/UX - Beautiful gradient design with smooth animations
  • πŸŒ™ Dark/Light Mode - Toggle between themes
  • πŸ“… Calendar View - Visual task scheduling
  • πŸ”„ Recurring Tasks - Set up daily, weekly, monthly, or custom recurring tasks
  • πŸ“± Mobile Responsive - Works perfectly on all devices
  • πŸ” JWT Authentication - Secure login with refresh tokens
  • 🌐 Network Access - Access from any device on your local network
  • πŸš€ Professional Setup - Ready for production deployment

πŸ› οΈ Technology Stack

Frontend

  • React 19 - Latest React with concurrent features
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first CSS framework
  • Framer Motion - Smooth animations and transitions
  • React Router - Client-side routing
  • Axios - HTTP client for API calls

Backend

  • ASP.NET Core 8 - High-performance web framework
  • Entity Framework Core - ORM for database operations
  • MySQL - Reliable database
  • JWT Authentication - Secure token-based auth
  • Identity Framework - User management

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • .NET 8 SDK
  • MySQL 8.0+

Installation

  1. Clone the repository
git clone <repository-url>
cd TaskManagerApp
  1. Configure environment variables
# Copy the example environment file
cp env.example .env

# Edit .env with your database credentials
# Update DB_SERVER, DB_NAME, DB_USER, DB_PASSWORD
  1. Install frontend dependencies
cd client-ts
npm install
  1. Run database migrations
dotnet ef database update

πŸƒβ€β™‚οΈ Running the Application

Development Mode

  1. Start the backend
dotnet run
  1. Start the frontend (in a new terminal)
cd client-ts
npm start
  1. Access the application

Professional Mode (Recommended)

For a production-like experience with friendly URLs:

  1. Setup local domains (Windows - Run as Administrator)
.\scripts\setup-hosts.ps1
  1. Start the application
.\scripts\start-professional.ps1
  1. Access via friendly URLs

🌐 Network Access

Automatic Setup

# Windows - Run as Administrator
.\scripts\start-professional.ps1

Manual Setup

  1. Get your local IP
ipconfig  # Windows
ifconfig  # macOS/Linux
  1. Start backend for network access
dotnet run
  1. Start frontend in network mode
cd client-ts
npm run start:network
  1. Access from other devices
  • Open browser on any device on the same network
  • Navigate to: http://YOUR_IP:3000

πŸ“ Project Structure

TaskManagerApp/
β”œβ”€β”€ Api/                    # API Controllers
β”‚   β”œβ”€β”€ AuthController.cs   # Authentication endpoints
β”‚   └── TasksApiController.cs # Task management
β”œβ”€β”€ client-ts/             # React Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable components
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   β”œβ”€β”€ services/     # API services
β”‚   β”‚   β”œβ”€β”€ context/      # React context
β”‚   β”‚   β”œβ”€β”€ hooks/        # Custom hooks
β”‚   β”‚   └── types/        # TypeScript types
β”œβ”€β”€ scripts/               # Automation scripts
β”‚   β”œβ”€β”€ start-professional.ps1  # Main startup script
β”‚   β”œβ”€β”€ load-env.ps1           # Environment loader
β”‚   β”œβ”€β”€ show-env.ps1           # Environment display
β”‚   β”œβ”€β”€ setup-hosts.ps1        # Local domain setup
β”‚   └── setup-production.ps1   # Production deployment
β”œβ”€β”€ Data/                  # Database context
β”œβ”€β”€ Models/               # Data models
β”œβ”€β”€ Services/             # Business logic
β”œβ”€β”€ Dtos/                # Data transfer objects
β”œβ”€β”€ Migrations/          # Database migrations
└── wwwroot/             # Built frontend (auto-generated)

βš™οΈ Configuration

Environment Variables

The application uses environment variables for configuration. Copy env.example to .env and customize:

# Database Configuration
DB_SERVER=localhost
DB_NAME=TaskManagerDb
DB_USER=root
DB_PASSWORD=your_password

# JWT Configuration
JWT_KEY=your_super_secret_key_here
JWT_ISSUER=TaskManagerApp
JWT_AUDIENCE=TaskManagerApp

# Application Configuration
APP_ENVIRONMENT=Development
APP_PORT=7043

# Network Configuration
LOCAL_IP=192.168.0.21
DOMAIN_PRIMARY=taskmanager.local

Port Configuration

Service Development Production
Frontend 3000 80/443
Backend HTTP 7043 80
Backend HTTPS 7044 443

πŸ”§ Available Scripts

Frontend (client-ts/)

npm start              # Local development
npm run start:network  # Network access mode
npm run build          # Production build
npm test               # Run tests

Backend

dotnet run             # Development mode
dotnet build           # Build project
dotnet test            # Run tests
dotnet ef database update  # Run migrations

PowerShell Scripts (Windows)

.\scripts\start-professional.ps1    # Start with professional setup
.\scripts\load-env.ps1             # Load environment variables
.\scripts\show-env.ps1             # Show current environment
.\scripts\setup-hosts.ps1          # Setup local domains (Admin)
.\scripts\setup-production.ps1     # Production deployment

πŸš€ Deployment

Local Production Setup

  1. Build the frontend
cd client-ts
npm run build
  1. Deploy to wwwroot
xcopy /E /Y client-ts\build\* wwwroot\
  1. Start the application
dotnet run

Cloud Deployment

The application is ready for deployment to:

  • Azure App Service
  • AWS Elastic Beanstalk
  • Google Cloud Run
  • Heroku
  • DigitalOcean App Platform

πŸ”’ Security Features

  • JWT Authentication with refresh tokens
  • CORS Configuration for secure cross-origin requests
  • Environment-based configuration for different deployment stages
  • HTTPS support with automatic certificate management
  • SQL injection protection via Entity Framework
  • XSS protection with proper content security policies

πŸ› Troubleshooting

Common Issues

HTTPS Certificate Errors

  • Development certificates may show warnings
  • Click "Advanced" and "Continue" to proceed
  • Or use HTTP URLs for development

CORS Errors

  • Verify the device's IP is included in CORS configuration
  • Check Program.cs for allowed origins

Cannot Access from Other Devices

  1. Ensure both devices are on the same WiFi network
  2. Check firewall settings allow connections on ports 3000/7043
  3. Verify you're using the correct local IP address

Database Connection Issues

  1. Ensure MySQL is running
  2. Verify connection string in appsettings.json
  3. Check database credentials in environment variables

Debug Mode

Enable detailed logging by setting:

LOG_LEVEL_DEFAULT=Debug

🀝 Contributing

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

πŸ“„ License

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

πŸ™ Acknowledgments

  • React Team for the amazing framework
  • Microsoft for ASP.NET Core
  • Tailwind CSS for the utility-first approach
  • Framer Motion for smooth animations

Made with ❀️ for productive task management

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •