A modern, responsive task management application built with Next.js, React, and TypeScript. OpenJira provides an intuitive Kanban-style interface for managing tasks across different stages of completion.
- Kanban Board Interface: Visual task management with three columns (Pending, In Progress, Completed)
- Real-time Task Management: Create, update, and delete tasks with immediate UI updates
- Drag & Drop Support: Move tasks between different status columns
- Responsive Design: Built with Material-UI for optimal experience across devices
- TypeScript Support: Full type safety throughout the application
- MongoDB Integration: Persistent data storage with Mongoose ODM
- Frontend: Next.js 12.1.0, React 17.0.2, TypeScript 4.6.2
- UI Framework: Material-UI (MUI) 5.5.1 with Emotion for styling
- Database: MongoDB with Mongoose ODM
- HTTP Client: Axios for API communication
- Notifications: Notistack for user feedback
- Date Handling: date-fns for date formatting
- Development: ESLint for code quality
- Node.js 16.19.1 (managed by Volta)
- Yarn 1.22.19 (managed by Volta)
- Docker and Docker Compose
Start the MongoDB container:
docker-compose up -dCreate environment file:
cp .env.template .envConfigure MongoDB connection in .env:
MONGO_URL=mongodb://localhost:27017/entriesdbyarn installPopulate the database with sample data:
curl http://localhost:3000/api/seedyarn devThe application will be available at http://localhost:3000
├── apis/ # API client functions
├── components/ # React components
│ ├── layouts/ # Layout components
│ └── ui/ # UI components (EntryCard, EntryList, etc.)
├── context/ # React Context providers
│ ├── entries/ # Entry state management
│ └── ui/ # UI state management
├── database/ # Database connection and utilities
├── interfaces/ # TypeScript type definitions
├── models/ # Mongoose schemas
├── pages/ # Next.js pages and API routes
│ └── api/ # API endpoints
├── styles/ # Global styles
├── themes/ # Material-UI theme configuration
└── utils/ # Utility functions
yarn dev- Start development serveryarn build- Build production versionyarn start- Start production serveryarn lint- Run ESLint
GET /api/entries- Retrieve all entriesPOST /api/entries- Create new entryPUT /api/entries/[id]- Update entryDELETE /api/entries/[id]- Delete entryGET /api/seed- Populate database with sample data
Tasks can be in one of three states:
- pending - Newly created tasks
- in-progress - Tasks currently being worked on
- finished - Completed tasks
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is private and not licensed for public use.