A modern, feature-rich task management application with authentication
Features β’ Demo β’ Installation β’ Usage β’ Tech Stack β’ Contributing
GDG To-Do List is a powerful, intuitive task management application built for productivity enthusiasts. Featuring seamless Google OAuth integration, real-time task updates, and an elegant user interface, it provides everything you need to stay organized and productive.
- Google OAuth 2.0 - Secure authentication via Supabase
- Email/Password Login - Alternative authentication method
- Persistent Sessions - Stay logged in across browser sessions
- Secure Logout - Safe session termination
- Smart Task Creation - Add tasks with optional date/time metadata
- Inline Editing - Click any task to edit in place
- Status Tracking - Mark tasks as complete/incomplete
- Soft Delete - Tasks move to trash before permanent deletion
- Task Recovery - Restore deleted tasks from trash
- Bulk Operations - Clear all trashed tasks at once
- All Tasks View - Complete overview of active tasks
- Active Filter - Focus on pending work
- Completed Filter - Review finished tasks
- Trash View - Manage deleted items
- Responsive Design - Optimized for desktop, tablet, and mobile
- Modern UI/UX - Clean, Google Material-inspired interface
- Smooth Animations - Polished transitions and interactions
- Loading States - Visual feedback during async operations
- User Profile Display - Avatar and name in app header
Live Application: https://todo.gowreesh.works
Main Interface
- Clean task list with sidebar navigation
- Intuitive add task interface
- Profile section with logout option
Login Modal
- Google OAuth integration
- Email/password alternative
- HTML5 - Semantic markup and structure
- CSS3 - Modern styling with flexbox, grid, and animations
- JavaScript (ES6+) - Vanilla JS with OOP principles
- Supabase - Authentication and backend services
- Google OAuth 2.0 - Third-party authentication
- Font Awesome - Icon library
- Google Fonts - Typography (Segoe UI)
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Supabase account (for authentication setup)
- Node.js (optional, for local development server)
-
Clone the repository
git clone https://github.com/Gowreesh-VT/GDG-To-Do-List.git cd GDG-To-Do-List -
Configure Supabase
Create a Supabase project at supabase.com
Enable Google OAuth:
- Navigate to Authentication β Providers
- Enable Google provider
- Configure OAuth credentials
-
Update Configuration
Edit
JS/script.jswith your Supabase credentials:this.supabaseUrl = 'YOUR_SUPABASE_PROJECT_URL'; this.supabaseKey = 'YOUR_SUPABASE_ANON_KEY';
-
Deploy
Option A: Local Development
# Using Python python -m http.server 8000 # Using Node.js npx serve
Option B: Static Hosting
- GitHub Pages
- Netlify
- Vercel
- Cloudflare Pages
-
Authentication
- Click "Continue with Google" for OAuth login
- Or use email/password credentials
-
Adding Tasks
- Enter task description in the input field
- (Optional) Set date and time
- Press Enter or click Add button
-
Managing Tasks
- β Click checkbox to mark complete
- βοΈ Click task text to edit inline
- ποΈ Click delete icon to move to trash
-
Filtering Tasks
- Use sidebar to switch between views
- All β Active β Completed β Trash
-
Trash Management
- Restore individual tasks
- Clear all permanently
| Shortcut | Action |
|---|---|
Enter |
Add new task (when input focused) |
Click |
Edit task inline |
GDG-To-Do-List/
βββ index.html # Main application
βββ CNAME # Custom domain config
βββ README.md # Documentation
β
βββ CSS/
β βββ style.css # Styles and animations
β
βββ HTML/
β βββ login.html # Alternative login page
β
βββ JS/
βββ script.js # Application logic
For production deployments, use environment variables:
// Example: Using Netlify environment variables
const SUPABASE_URL = process.env.SUPABASE_URL;
const SUPABASE_KEY = process.env.SUPABASE_ANON_KEY;Colors & Themes (CSS/style.css)
:root {
--primary-color: #your-color;
--background-gradient: your-gradient;
}Task Storage (JS/script.js)
- Currently uses localStorage
- Can be extended to Supabase database
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow existing code style
- Add comments for complex logic
- Test on multiple browsers
- Update documentation as needed
- Tasks are stored locally (no cloud sync yet)
- No task categories/tags (planned feature)
- No push notifications for due dates
- Cloud sync with Supabase database
- Task categories and tags
- Priority levels (high, medium, low)
- Due date notifications
- Search and advanced filtering
- Dark/Light theme toggle
- Task sharing and collaboration
- Mobile app (React Native)
This project is licensed under the MIT License - see the LICENSE file for details.
Gowreesh VT
- GitHub: @Gowreesh-VT
- Website: gowreesh.works
- Google Developer Group (GDG) - Project inspiration
- Supabase - Authentication infrastructure
- Font Awesome - Icon library
- Google Fonts - Typography
- Open source community
For support, please:
- Open an issue on GitHub
- Contact: [Your Email]
β Star this repository if you find it helpful!
Made with β€οΈ by Gowreesh VT