Code Monkey home page Code Monkey logo

bookmarks's Introduction

Bookmarks

This is a very simple front-end only app to register bookmarks. It is coded in Angular 8 with NgRx to manage the state.

How to check the project

Three different ways have been provided to evaluate this project:

  • Deployed application (recommended)
  • Development server
  • Build and run

Deployed application (recommended)

The last version of this app is always deployed here thanks to a GitHub Actions automated CI workflow. This is the easiest way to check the project.

Development server

Check out the repository and run ng serve or npm start for a dev server. Navigate to http://localhost:4200/ in your browser.

Build and run

Check out the repository and run ng build to build the project. The build artifacts will be stored in the dist/ directory. Go there and launch index.html.

Folder structure

bookmarks
├───.github
│   └───workflows
├───e2e
│   └───src
├───readme-assets
└───src
    ├───app
    │   ├───bookmarks
    │   │   ├───+state
    │   │   ├───add-bookmark-dialog-component
    │   │   ├───bookmarks-component
    │   │   └───services
    │   ├───nav-bar
    │   │   └───nav-bar-component
    │   └───shared
    │       ├───angular-material
    │       ├───expandable-table
    │       │   └───expandable-table-component
    │       └───table
    │           └───table-component
    ├───assets
    └───environments

The app folder has been structured to make it easy to understand the contents and their role in the application. It contains the root app component and module, the routing module and three more folders:

bookmarks

In this folder we have the main component of the app (bookmarks-component), the dialog to add new bookmarks (add-bookmark-dialog-component), the state management folder for this container (+state), the related services simulating an API (services) and the module.

nav-var

Here we can find the navigation bar of the app. It contains the component itself (nav-bar-component) and the module.

shared

Lastly, all components and modules that are likely to be reused if this project were to scale have been placed here, including a dedicated angular-material module to keep the rest of the modules import section clean. We also find components for the expandable-table to keep the bookmarks grouped and the table used to populate it.

Usage

The app is very straight forward, once launched you get directly into your bookmarks:

Alt text

From here you can check your current bookmarks by group or create a new one. Clicking the ADD FAB will pop a dialog window to enter the new bookmark:

Alt text

Input will be validated:

Alt text Alt text

After clicking ADD, the bookmark will be added to the corresponding group of the expandable-table:

Alt text Alt text

Clicking in the link icon will open the bookmark in a new tab. Clicking in the delete icon will remove this bookmark.

Populated example:

Alt text

Desired improvements

  • Edit bookmarks
  • Persist data in browser local storage
  • Open corresponding panel after adding bookmark
  • Import/export data from file
  • Search field to filter bookmarks
  • Check bookmark availability status
  • Share bookmarks in social media
  • Theme swap

bookmarks's People

Contributors

jodebu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.