A full-stack task management application built with the T3 stack (Next.js, TypeScript, tRPC, Prisma, NextAuth.js, and Tailwind CSS). This project demonstrates modern web development practices and provides a complete solution for team collaboration and project management.
- Project Management: Create and manage projects with team collaboration
- Task Management: Create, assign, and track tasks with priorities and deadlines
- User Profiles: Manage personal information and preferences
- Real-time Collaboration: Comment on tasks and collaborate with team members
- Dashboard: Overview of projects, tasks, deadlines, and team activities
- Authentication: Secure email/password and OAuth authentication
- Responsive Design: Modern UI that works on desktop and mobile devices
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: tRPC, NextAuth.js
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js with email/password and OAuth providers
- UI Components: Headless UI, Heroicons
- Deployment: Ready for AWS deployment with SST (Serverless Stack)
- Node.js 18+ and npm
- PostgreSQL database
- Git
git clone <repository-url>
cd easyslrnpm installCopy the environment template and configure your variables:
cp .env.example .envUpdate the .env file with your configuration:
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/taskcollab"
# Next Auth
NEXTAUTH_SECRET="your-nextauth-secret-here"
NEXTAUTH_URL="http://localhost:3000"
# OAuth Providers (Optional)
DISCORD_CLIENT_ID=""
DISCORD_CLIENT_SECRET=""
# Supabase (Optional)
NEXT_PUBLIC_SUPABASE_URL=""
NEXT_PUBLIC_SUPABASE_ANON_KEY=""Generate Prisma client and run migrations:
npx prisma generate
npx prisma db pushnpm run devThe application will be available at http://localhost:3000.
- Sign Up/Sign In: Create an account or sign in with your credentials
- Create a Project: Start by creating your first project
- Add Team Members: Invite team members to your project
- Create Tasks: Add tasks with descriptions, priorities, and deadlines
- Assign Tasks: Assign tasks to team members
- Track Progress: Monitor task progress and update statuses
- Collaborate: Use comments to discuss tasks with team members
- Dashboard (
/dashboard): Overview of all projects and tasks - Projects (
/projects): Manage projects and view project details - Tasks (
/tasks): View and manage all tasks - Profile (
/profile): Update personal information and preferences
The application uses the following main entities:
- User: User accounts with profile information
- Project: Projects with team members and settings
- Task: Tasks with assignments, priorities, and deadlines
- Tag: Categorization tags for tasks
- Comment: Task comments for collaboration
The application uses tRPC for type-safe API routes:
api.project.*: Project management operationsapi.task.*: Task management operationsapi.user.*: User profile operationsapi.tag.*: Tag management operations
Run the test suite:
npm testThe project includes unit tests for:
- Database operations
- tRPC procedures
- Utility functions
- Component logic
- Install SST:
npm install -g sst- Configure AWS credentials
- Deploy to AWS:
sst deploy- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
For production deployment:
npx prisma migrate deploy- Next.js with TypeScript for the React framework
- Tailwind CSS for styling
- tRPC for type-safe API communication
- NextAuth.js for authentication
- tRPC for API layer
- Prisma for database ORM
- PostgreSQL for data storage
- NextAuth.js for session management
- Database schema changes via Prisma migrations
- Type-safe API development with tRPC
- Component development with TypeScript
- Testing with Jest/Testing Library
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Make your changes and add tests
- Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
This project is open source and available under the MIT License.
- T3 Stack for the excellent development stack
- Tailwind UI for design inspiration
- Heroicons for the beautiful icons
Built with ❤️ using the T3 Stack
