A web application for tracking and managing tasks and leisure time.
LeisureTask is a fullstack application developed using a modern technology stack. It helps users effectively manage their tasks and maintain a balance between work and leisure time.
- React
- TypeScript
- Vite
- Chakra UI
- tRPC (for type-safe API)
- React Query
- Node.js
- Express
- TypeScript
- Prisma (ORM)
- PostgreSQL
- tRPC
- Zod (validation)
- Node.js (v18+)
- pnpm
- Docker and Docker Compose
- PostgreSQL
- Clone the repository:
git clone https://github.com/yourusername/LeisureTask.git
cd LeisureTask- Install dependencies:
pnpm install-
Create configuration files:
- Copy
.env.exampleto.envin the root directory - Fill in the required environment variables
- Copy
-
Start the database:
docker-compose up -d db- Apply migrations:
pnpm prisma migrate dev- Start the application:
pnpm devTo run the entire application in Docker:
pnpm dcuCreate the following environment files:
HOST_ENV=local
NODE_ENV=development
DATABASE_URL=postgresql://user:password@localhost:5432/leisuretask
JWT_SECRET=your-jwt-secret
PASSWORD_SALT=your-password-salt
BREVO_API_KEY=your-brevo-api-key
Run tests:
pnpm testLeisureTask/
├── backend/ # Server-side code
│ ├── src/
│ └── tests/
├── webapp/ # Client-side code
│ ├── src/
│ └── tests/
└── shared/ # Shared code
- Task Management
- Time Tracking
- Work/Leisure Balance
- Email Notifications
- User Authentication
- File Upload Support
- Responsive Design
The API is built using tRPC, providing type-safe API endpoints. Key features include:
- Authentication
- Task Management
- Timer Control
- File Upload
- User Management
- Fork the project
- Create a feature branch
- Submit a pull request
MIT
Lisdan
For any questions or issues, please use the Issues section.