- Introduction
- Features
- Technologies Used
- Project Structure
- Setup and Installation
- Running the Application
- API Endpoints
- Component Overview
- Styling
- Database
- Deployment
- Contributing
- License
The Sticky Notes App is a web-based application that allows users to create, organize, and manage digital sticky notes. It provides a user-friendly interface for adding, editing, and deleting notes across different categories or headers. This application is built using modern web technologies and follows best practices for scalable and maintainable code.
- Create and manage multiple note categories (headers)
- Add, edit, and delete sticky notes within each category
- Customizable note colors
- Responsive design for various screen sizes
- Real-time updates using a backend API
- Smooth and intuitive user interface
- Frontend:
- Next.js 14
- React 18
- TypeScript
- Tailwind CSS
- Lucide React (for icons)
- shadcn/ui components
- Backend:
- Node.js
- Express.js
- MongoDB (with Mongoose ORM)
- Development Tools:
- ESLint
- Prettier
- PostCSS
- Deployment:
- Vercel (for frontend)
- Custom server deployment (for backend)
my-sticky-notes/
│
├── public/
│ └── (static files)
│
├── src/
│ ├── app/
│ │ ├── layout.tsx
│ │ ├── page.tsx
│ │ └── globals.css
│ │
│ ├── components/
│ │ ├── StickyNoteBoard.tsx
│ │ └── ui/
│ │ ├── button.tsx
│ │ ├── input.tsx
│ │ └── textarea.tsx
│ │
│ └── lib/
│ └── utils.ts
│
├── server.js
├── tailwind.config.js
├── postcss.config.js
├── next.config.mjs
├── tsconfig.json
├── package.json
└── README.md
-
Clone the repository:
git clone https://github.com/fired/Sticky-Note.git cd Sticky-Note -
Install dependencies:
npm install -
Set up the database:
- Ensure MongoDB is installed and running on your system
- Create a new database named
stickynotesdb
-
Start the backend server:
node server.js -
In a separate terminal, start the Next.js development server:
npm run dev -
Open your browser and navigate to
http://localhost:7980to view the application.
GET /api/notes: Retrieve all notesPOST /api/notes: Create a new notePUT /api/notes/:id: Update an existing noteDELETE /api/notes/:id: Delete a note
The main component that renders the entire sticky note board. It manages the state of headers and notes, and provides functionality for adding, editing, and deleting notes and headers.
Button: Reusable button component with various stylesInput: Customizable input field componentTextarea: Textarea component for multiline input
The project uses Tailwind CSS for styling. Custom styles can be added in the src/app/globals.css file. The tailwind.config.js file contains the configuration for Tailwind, including custom theme extensions.
The application uses MongoDB to store note data. The NoteSchema defines the structure of note documents:
const NoteSchema = new mongoose.Schema({
header: String,
text: String,
color: String
});- Frontend: The Next.js application can be deployed on Vercel or any other platform that supports Next.js applications.
- Backend: The Express server can be deployed on platforms like Heroku, DigitalOcean, or AWS.
Ensure that you set the appropriate environment variables on your deployment platform.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.