A modern web application built with Next.js 14 for managing project proposals. This application provides a simple and intuitive interface for creating, viewing, editing, and managing proposals with different statuses.
- 📝 Create new proposals with title and content
- 👀 View all proposals in a clean, organized list
- ✏️ Edit existing proposals
- 🗑️ Delete proposals
- 📊 Status management (Draft, Active, Completed, Rejected)
- 🎨 Modern UI with Tailwind CSS
- 📱 Responsive design
- ⚡ Fast and efficient with Next.js 14
- 💾 JSON-based storage solution
- Framework: Next.js 14
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components:
- Radix UI
- Custom shadcn/ui components
- State Management: React Hooks
- Data Validation: Zod
- Icons: Lucide React
- Node.js 18 or later
- pnpm (recommended) or npm
- Clone the repository:
git clone [your-repo-url]
cd temp-proposals-app- Install dependencies:
pnpm install- Run the development server:
pnpm dev- Open http://localhost:3000 in your browser.
temp-proposals-app/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── api/ # API routes
│ │ ├── proposals/ # Proposal pages
│ │ └── page.tsx # Home page
│ ├── components/ # Reusable components
│ │ └── ui/ # UI components
│ └── lib/ # Utilities and database
│ ├── db.ts # Database operations
│ ├── types.ts # TypeScript types
│ └── utils.ts # Utility functions
├── public/ # Static files
└── data/ # JSON database storage
- Click "Create Proposal" on the home page
- Fill in the title and content
- Select initial status (defaults to Draft)
- Click "Create Proposal"
- Click on a proposal title to view details
- Click "Edit Proposal"
- Modify title, content, or status
- Click "Save Changes"
Proposals can have one of four statuses:
- Draft: Initial state
- Active: Currently in progress
- Completed: Finished proposals
- Rejected: Declined proposals
- Navigate to the proposal's edit page
- Click "Delete Proposal"
- Confirm deletion in the popup
pnpm buildpnpm startThe application uses a JSON-based storage solution:
- Data is stored in
/data/proposals.json - CRUD operations are handled through API routes
- Data is validated using Zod schemas
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Next.js 14
- UI components inspired by shadcn/ui
- Icons from Lucide React