A minimal and elegant workspace for managing your notes and tasks. Built with Next.js, TypeScript, and modern web technologies.
- Create, edit, and organize notes with rich text content
- Pin important notes to the top
- Archive notes you don't need immediately
- Drag and drop to reorder notes
- Create tasks with descriptions and due dates
- Organize tasks into custom lists
- Set reminders for important deadlines
- Mark tasks as "My Day" for daily focus
- Mark tasks as important
- Drag and drop to reorder tasks within lists
- Secure user authentication with NextAuth
- Support for multiple OAuth providers
- Password-based authentication
- User profile management
- Clean, minimal design with dark mode support
- Responsive layout for all devices
- Smooth animations with Framer Motion
- Accessible components with Radix UI
- Drag and drop functionality with @dnd-kit
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS, Radix UI, Lucide Icons
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- State Management: TanStack Query (React Query)
- Validation: Zod
- Animations: Framer Motion
- Drag & Drop: @dnd-kit
- Node.js 18+
- PostgreSQL database
- npm or yarn
- Clone the repository:
git clone https://github.com/anuragparashar26/tarea.git
cd tarea- Install dependencies:
npm install- Set up your environment variables. Create a
.env.localfile in the root directory:
DATABASE_URL="postgresql://username:password@localhost:5432/tarea"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here"
# OAuth Providers (optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
#Mailgun API
MAILGUN_API_KEY=""
MAILGUN_DOMAIN=""
EMAIL_FROM=""- Set up the database:
npx prisma generate
npx prisma db push- Run the development server:
npm run devOpen http://localhost:3000 in your browser to see the application.
npm run dev- Start the development server with Turbopacknpm run build- Build the application for productionnpm run start- Start the production servernpm run lint- Run ESLint for code linting
The application uses Prisma with PostgreSQL. Key models include:
- User: User accounts and authentication
- Note: User notes with content, colors, and metadata
- TaskList: Collections of tasks
- Task: Individual tasks with priorities, due dates, and status
src/
├── app/ # Next.js app router
│ ├── api/ # API routes
│ ├── auth/ # Authentication pages
│ ├── dashboard/ # Main dashboard
│ └── profile/ # User profile
├── components/ # Reusable UI components
│ ├── notes/ # Notes-related components
│ ├── tasks/ # Tasks-related components
│ └── ui/ # Base UI components
├── hooks/ # Custom React hooks
└── lib/ # Utility functions and configurations
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Open a pull request
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
For support or questions, please contact the developer.
