Skip to content

Commit d84c7f0

Browse files
author
Erich
committed
Supabase integration
1 parent c9a64d0 commit d84c7f0

15 files changed

Lines changed: 1033 additions & 546 deletions

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ dist
1212
dist-ssr
1313
*.local
1414

15+
# Environment variables
16+
.env
17+
.env.local
18+
.env.production
19+
1520
# Editor directories and files
1621
.vscode/*
1722
!.vscode/extensions.json

README.md

Lines changed: 159 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,160 @@
1-
# uptask (v3.0)
1+
# uptask-o
22

3-
welcome to your home, but on the web!
3+
A calm and welcoming task manager for real work.
4+
5+
## Features
6+
7+
- 🔐 **Secure Authentication** - GitHub OAuth integration via Supabase Auth
8+
- 📊 **Project Management** - Organize tasks into customizable projects with icons
9+
-**Task Tracking** - Create, complete, and manage tasks with descriptions and due dates
10+
- 🔄 **Real-time Sync** - Changes sync automatically across devices
11+
- 🎨 **Beautiful UI** - Modern, responsive design built with Tailwind CSS and shadcn/ui
12+
- 🔒 **Private by Default** - Row-level security ensures your data stays yours
13+
14+
## Tech Stack
15+
16+
- **Frontend**: React 19, TypeScript, Vite
17+
- **Backend**: Supabase (PostgreSQL + Auth + Real-time)
18+
- **Styling**: Tailwind CSS 4, shadcn/ui components
19+
- **Authentication**: Supabase Auth with GitHub OAuth
20+
- **Database**: PostgreSQL with Row Level Security (RLS)
21+
- **Type Safety**: Full TypeScript coverage with generated database types
22+
23+
## Getting Started
24+
25+
### Prerequisites
26+
27+
- Node.js 18+ and npm
28+
- A Supabase account
29+
- A GitHub OAuth App (for authentication)
30+
31+
### Installation
32+
33+
1. Clone the repository:
34+
35+
```bash
36+
git clone <your-repo-url>
37+
cd uptask-o
38+
```
39+
40+
2. Install dependencies:
41+
42+
```bash
43+
npm install
44+
```
45+
46+
3. Set up Supabase:
47+
48+
- Create a Supabase project
49+
- Configure GitHub OAuth
50+
- Run the database schema
51+
- Copy your environment variables
52+
53+
4. Create a `.env` file in the root directory:
54+
55+
```env
56+
VITE_SUPABASE_URL=your-supabase-url
57+
VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
58+
```
59+
60+
5. Start the development server:
61+
62+
```bash
63+
npm run dev
64+
```
65+
66+
6. Open your browser to `http://localhost:5173`
67+
68+
## Project Structure
69+
70+
```
71+
uptask-o/
72+
├── src/
73+
│ ├── components/ # React components
74+
│ │ ├── ui/ # shadcn/ui components
75+
│ │ ├── AuthForm.tsx # GitHub sign-in form
76+
│ │ ├── AppMenuBar.tsx # Top navigation
77+
│ │ ├── ProjectList.tsx # Sidebar projects
78+
│ │ └── TaskList.tsx # Task display
79+
│ ├── contexts/ # React contexts
80+
│ │ └── AuthContext.tsx # Authentication state
81+
│ ├── hooks/ # Custom React hooks
82+
│ │ └── useTaskManager.ts # Task/project management
83+
│ ├── lib/ # Utilities
84+
│ │ ├── supabase.ts # Supabase client
85+
│ │ ├── database.types.ts # Generated types
86+
│ │ └── utils.ts # Helper functions
87+
│ ├── pages/ # Page components
88+
│ │ ├── WelcomePage.tsx # Landing page
89+
│ │ ├── AuthCallback.tsx # OAuth callback
90+
│ │ └── Dashboard.tsx # Main app
91+
│ └── types/ # TypeScript types
92+
│ └── tasks.ts # Task/project types
93+
└── .env.example # Environment template
94+
```
95+
96+
## Database Schema
97+
98+
### Tables
99+
100+
- **projects** - User projects with customizable names and icons
101+
- **tasks** - Tasks with title, description, completion status, and due dates
102+
103+
### Security
104+
105+
- Row Level Security (RLS) enabled on all tables
106+
- Users can only access their own data
107+
- Automatic user isolation at the database level
108+
109+
### Real-time
110+
111+
- Live updates across all connected clients
112+
- Changes sync automatically without refresh
113+
114+
## Development
115+
116+
### Available Scripts
117+
118+
- `npm run dev` - Start development server
119+
- `npm run build` - Build for production
120+
- `npm run preview` - Preview production build
121+
- `npm run lint` - Run ESLint
122+
123+
### Code Style
124+
125+
- TypeScript strict mode enabled
126+
- ESLint for code quality
127+
- Modern React patterns (hooks, context)
128+
- Functional components throughout
129+
130+
## Deployment
131+
132+
### Prerequisites
133+
134+
1. Update GitHub OAuth App with production URLs
135+
2. Configure Supabase redirect URLs for production
136+
3. Set environment variables in your hosting platform
137+
138+
### Build Command
139+
140+
```bash
141+
npm run build
142+
```
143+
144+
### Output Directory
145+
146+
```
147+
dist/
148+
```
149+
150+
## Contributing
151+
152+
Contributions are welcome! Please feel free to submit a Pull Request.
153+
154+
## License
155+
156+
MIT
157+
158+
---
159+
160+
Built with ❤️ using React, TypeScript, and Supabase

package-lock.json

Lines changed: 133 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@radix-ui/react-slot": "^1.2.3",
2323
"@radix-ui/react-tabs": "^1.1.13",
2424
"@radix-ui/react-tooltip": "^1.2.8",
25+
"@supabase/supabase-js": "^2.58.0",
2526
"@tailwindcss/vite": "^4.1.14",
2627
"class-variance-authority": "^0.7.1",
2728
"clsx": "^2.1.1",

0 commit comments

Comments
 (0)