A React-based digital sticky notes application that helps you create, edit, search, and organize your thoughts with automatic save functionality.
๐ View Live App | ๐ป CodeSandbox
- About
- Key Features
- React Concepts & Lifecycle Methods
- Technologies Used
- How It Works
- Getting Started
- Future Enhancements
- Contributing
Super Sticky Notes is an interactive web application built with React that allows users to create and manage digital sticky notes directly in their browser. Unlike traditional paper notes, this app provides a streamlined, organized approach to managing daily tasks, reminders, and quick thoughtsโwith the added benefit of automatic persistence so your notes are never lost!
Say goodbye to scattered paper notes and hello to a digital workspace that remembers everything for you, even after closing your browser.
- Create Notes: Quickly generate new sticky notes with just a click
- Edit Content: Dynamically modify note text whenever inspiration strikes
- Delete Notes: Remove completed or outdated notes to keep your workspace clean
- Search Function: Instantly find specific notes, no matter how many you have
- Persistent Storage: All notes are automatically saved to your browser's LocalStorage
- No Manual Saving Required: Every change is saved instantly
- Session Persistence: Your notes remain intact even after closing and reopening your browser
- Zero Data Loss: Never worry about losing your important information
- Clean, intuitive interface
- Fast and responsive
- Visual feedback for all actions
- Organized workspace that adapts to your needs
This project demonstrates proficiency in React development and key lifecycle concepts:
The app utilizes React lifecycle methods to manage data persistence and component behavior:
-
componentDidMount()- Loads saved notes from LocalStorage when the app first renders- Retrieves previously saved notes from browser storage
- Initializes the component state with existing data
- Ensures users see their saved notes immediately upon opening the app
-
componentDidUpdate()- Automatically saves notes to LocalStorage whenever changes occur- Triggers after any state update (creating, editing, or deleting notes)
- Persists the current state to LocalStorage
- Ensures data is never lost, even without manual saving
- Component State: Manages all notes in a centralized state object
- State Updates: Uses
setState()for all data modifications - Controlled Components: Form inputs are controlled by React state
- Data Flow: Implements unidirectional data flow following React best practices
- Modern functional components with hooks
useStatefor managing note datauseEffectfor lifecycle-like behavior and side effects
- React - Component-based UI library
- JSX - JavaScript XML for declarative UI development
- JavaScript (ES6+) - Modern JavaScript features including:
- Arrow functions
- Destructuring
- Spread operators
- Template literals
- LocalStorage API - Browser storage for note persistence
- React State Management - Component state and props
- Lifecycle Methods -
componentDidMount()andcomponentDidUpdate()
- CodeSandbox - Online IDE for rapid development and deployment
- Netlify - Hosting and deployment platform
-
Initial Load (
componentDidMount)User opens app โ componentDidMount runs โ Retrieves notes from LocalStorage โ Updates component state โ Notes display on screen -
Creating/Editing/Deleting Notes
User makes changes โ Component state updates โ componentDidUpdate runs โ Saves to LocalStorage โ Data persists for next session -
Search Functionality
User types in search โ State updates with filter โ Display filters notes in real-time โ Shows matching results
LocalStorage Integration:
- Notes are stored as JSON strings in the browser's LocalStorage
- Each save operation updates the
stickyNoteskey - Data persists indefinitely until manually cleared
Component Architecture:
- Parent component manages all state
- Child components receive data via props
- Event handlers passed down for user interactions
Experience Super Sticky Notes immediately:
๐ Launch App
View and fork the project on CodeSandbox:
๐ป View on CodeSandbox
-
Clone the repository
git clone https://github.com/CatYoung018/Super-sticky-notes.git cd Super-sticky-notes -
Install dependencies
npm install
-
Start the development server
npm start
-
Open your browser
- Navigate to
http://localhost:3000 - Start creating notes!
- Navigate to
Prerequisites:
- Node.js (v14 or higher)
- npm or yarn
- Modern web browser
This project demonstrates proficiency in:
- React Fundamentals - Components, props, and state
- React Lifecycle Methods - Managing component lifecycle
- Browser APIs - LocalStorage for data persistence
- Event Handling - User interactions and form submissions
- Conditional Rendering - Dynamic UI based on state
- Array Methods - Filtering and mapping data
- ES6+ JavaScript - Modern syntax and features
- Component Architecture - Organizing React applications
Potential improvements for future versions:
- Reminders and Due Dates - Set deadlines for tasks
- Drag-and-Drop Reordering - Organize notes visually
- Color Coding - Categorize notes by color
- Rich Text Editing - Add formatting options
- Export Function - Download notes as text/JSON
- Cloud Sync - Sync across devices
- Tags and Categories - Better organization
- Dark Mode - Eye-friendly theme option
Contributions are welcome! If you'd like to improve Super Sticky Notes:
- Fork the repository
- Create a 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
Please ensure your code:
- Follows the existing style
- Includes comments for complex logic
- Doesn't break existing functionality
- Has been tested in a browser
This project is open-source and available under the MIT License.
- Skillcrush - This project was developed as part of their comprehensive front-end development curriculum
- Built with React - Demonstrating modern component-based architecture
- Deployed on Netlify - Fast and reliable hosting
Cat Young
- GitHub: @CatYoung018
- LinkedIn: Catrillia Young
- Portfolio: catyoung018.github.io/Cat-Young-Dev
๐ Stay organized, stay productive! โจ
โญ Star this repo if you find it helpful!
- Contact: Feel free to reach out to me via GitHub with any questions or feedback.
- Credits: This project was developed as part of the curriculum at Skillcrush, where I gained valuable front-end development skills.
