Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Web Notes App

Aplikasi pencatatan berbasis web yang dikembangkan menggunakan JavaScript dengan pendekatan modern frontend development. Project ini dibangun secara bertahap mulai dari implementasi Web Components hingga integrasi RESTful API dan penggunaan module bundler.

Project ini merupakan bagian dari proses pembelajaran dan pengembangan kemampuan frontend engineering melalui kelas Fundamental Front-End Web Development di Dicoding Indonesia.


Features

Core Features

  • Menampilkan daftar catatan
  • Menambahkan catatan baru
  • Menghapus catatan
  • Responsive layout
  • Reusable UI Component
  • Real-time form validation

Modern Frontend Features

  • REST API integration
  • Asynchronous data fetching
  • Loading indicator
  • Modular JavaScript architecture
  • Webpack module bundler
  • Package management menggunakan npm

Tech Stack

Frontend

  • HTML5
  • CSS3
  • JavaScript (ES6+)

Tools & Libraries

  • Web Components
  • Fetch API
  • Webpack
  • npm

API

  • Notes API Dicoding

Application Flow

User Interface
      ↓
Web Components
      ↓
Form Validation
      ↓
Fetch API
      ↓
REST API
      ↓
Notes Database

Project Evolution

Project ini dikembangkan secara bertahap sebagai bagian dari proses pembelajaran modern frontend development.


Version 1 — Basic Notes App

Pada versi pertama, aplikasi difokuskan pada pembangunan antarmuka interaktif menggunakan JavaScript dan Web Components.

Implementasi

  • CSS Grid Layout
  • Custom Web Components
  • Form tambah catatan
  • Responsive layout
  • Realtime form validation
  • Pengelolaan data lokal/dummy data

Fokus Pembelajaran

  • Component-based UI
  • DOM manipulation
  • Reusable component
  • Responsive design
  • Form handling

Version 2 — REST API Integration

Versi kedua merupakan pengembangan lanjutan dari aplikasi sebelumnya dengan implementasi arsitektur frontend yang lebih modern.

Implementasi

  • RESTful API integration
  • Fetch API
  • Asynchronous request handling
  • Webpack module bundler
  • Loading indicator
  • Modular JavaScript structure
  • Package management menggunakan npm

Fokus Pembelajaran

  • Modern frontend workflow
  • API consumption
  • Modular architecture
  • Build tools
  • Async programming

Installation

Clone Repository

git clone https://github.com/username/web-notes-app.git

Masuk ke Folder Project

cd web-notes-app

Install Dependencies

npm install

Menjalankan Development Server

npm run start-dev

Build Production

npm run build

Project Structure

web-notes-app/
│
├── notes-app-project-1/
│   │
│   ├── src/
│   │   ├── css/
│   │   │   └── style.css
│   │   │
│   │   ├── js/
│   │   │   ├── component/
│   │   │   ├── data/
│   │   │   ├── index.js
│   │   │   └── utils.js
│   │   │
│   │   └── index.html
│   │
│   └── .vscode/
│
├── notes-app-project-2/
│   │
│   ├── src/
│   │   ├── css/
│   │   │   └── style.css
│   │   │
│   │   ├── js/
│   │   │   ├── component/
│   │   │   ├── data/
│   │   │   ├── main.js
│   │   │   └── utils.js
│   │   │
│   │   └── index.js
│   │
│   ├── public/
│   │   └── favicon.png
│   │
│   ├── dist/
│   │
│   ├── .gitignore
│   ├── .prettierignore
│   ├── .prettierrc
│   ├── index.html
│   ├── package.json
│   ├── package-lock.json
│   ├── webpack.common.js
│   ├── webpack.dev.js
│   ├── webpack.prod.js
│   │
│   └── node_modules/
│
└── README.md

Challenges & Solutions

Asynchronous Data Handling

Salah satu tantangan utama dalam project ini adalah mengelola asynchronous request dan menjaga sinkronisasi tampilan UI saat proses pengambilan data dari REST API berlangsung.

Solution

Mengimplementasikan loading indicator dan asynchronous handling menggunakan Fetch API agar pengalaman pengguna tetap responsif.


Component Reusability

Membangun UI yang modular dan dapat digunakan kembali menggunakan Web Components.

Solution

Mengembangkan reusable custom elements untuk beberapa bagian interface seperti notes card, form input, dan loading indicator.


Project Scalability

Ketika project berkembang, struktur kode menjadi lebih kompleks dan sulit dipelihara.

Solution

Menggunakan webpack dan modular JavaScript structure agar project lebih scalable dan maintainable.


Learning Outcomes

Melalui project ini, saya mempelajari:

  • Pengembangan frontend modern menggunakan JavaScript
  • Implementasi reusable UI menggunakan Web Components
  • Integrasi RESTful API menggunakan Fetch API
  • Pengelolaan asynchronous data
  • Penggunaan webpack sebagai module bundler
  • Responsive web development
  • Modular project architecture
  • Frontend project scalability
  • Form validation dan user interaction handling

Future Improvements

Beberapa pengembangan yang dapat dilakukan di masa mendatang:

  • Implementasi fitur archive notes
  • Menambahkan authentication system
  • Menambahkan dark mode
  • Optimasi state management
  • Menambahkan unit testing
  • Menambahkan drag and drop notes
  • Menambahkan search dan filtering notes
  • Menambahkan fitur category/tag notes

Deployment

Tambahkan link deployment di sini

https://your-deployment-link.com

Repository Topics

javascript
frontend
webpack
web-components
notes-app
rest-api
fetch-api
responsive-web-design

License

Project ini dikembangkan untuk tujuan pembelajaran dan pengembangan portfolio.


Acknowledgements

Project ini dikembangkan sebagai bagian dari pembelajaran pada kelas Fundamental Front-End Web Development di Dicoding Indonesia.


Author

Developed by Your Name

GitHub:

https://github.com/yourusername

About

Submission 4 - Fundamental Front-End Web Develoment : Aplikasi pencatatan berbasis web menggunakan JavaScript dan Web Components dengan reusable UI component, responsive layout, serta pengelolaan catatan interaktif. Project dikembangkan hingga mendukung RESTful API, Fetch API, webpack, asynchronous data handling, dan loading untuk meningkatkan UX

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages