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 -d
Create environment file:
cp .env.template .env
Configure MongoDB connection in .env
:
MONGO_URL=mongodb://localhost:27017/entriesdb
yarn install
Populate the database with sample data:
curl http://localhost:3000/api/seed
yarn dev
The 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.