|
| 1 | +# :memo: Amb-Notes |
| 2 | + |
| 3 | +[**:earth_africa: View Demo**](https://amb-notes.herokuapp.com) |
| 4 | + |
| 5 | +Public Notes Sharing Web Application. |
| 6 | + |
| 7 | +<!--  --> |
| 8 | + |
| 9 | +## :book: Table of contents |
| 10 | + |
| 11 | +<!-- toc --> |
| 12 | + |
| 13 | +- [:scroll: Introduction](#scroll-introduction) |
| 14 | +- [:checkered_flag: Getting started](#checkered_flag-getting-started) |
| 15 | +- [:arrow_forward: Deployment](#arrow_forward-deployment) |
| 16 | +- [:octocat: Technologies](#octocat-technologies) |
| 17 | + - [:computer: Frontend](#computer-frontend) |
| 18 | + - [:crystal_ball: Backend](#crystal_ball-backend) |
| 19 | +- [:triangular_ruler: Design](#triangular_ruler-design) |
| 20 | + |
| 21 | +<!-- tocstop --> |
| 22 | + |
| 23 | +## :scroll: Introduction |
| 24 | + |
| 25 | +This is a simple **Web application** that allows users to **post public notes** that others can see on the home page. <br> |
| 26 | +It is mainly built with **VueJS** and **ExpressJS**. It implements many **common features** using many **libraries**. <br> |
| 27 | +This project can be used for **learning purposes** or as a **starter template** for building similar applications. |
| 28 | + |
| 29 | +## :checkered_flag: Getting started |
| 30 | + |
| 31 | +1. Clone the repository: |
| 32 | + |
| 33 | +```bash |
| 34 | +cd somewhere |
| 35 | +git clone https://github.com/Ambratolm/amb-notes.git |
| 36 | +cd amb-notes |
| 37 | +``` |
| 38 | + |
| 39 | +2. Install the dependencies: |
| 40 | + |
| 41 | +```bash |
| 42 | +npm i |
| 43 | +``` |
| 44 | + |
| 45 | +3. Install [**Nodemon**](https://github.com/remy/nodemon/) globally: |
| 46 | + |
| 47 | +```bash |
| 48 | +npm i -g nodemon |
| 49 | +``` |
| 50 | + |
| 51 | +4. Run app server: |
| 52 | + |
| 53 | +```bash |
| 54 | +npm run serve |
| 55 | +``` |
| 56 | + |
| 57 | +4. Run api server: |
| 58 | + |
| 59 | +```bash |
| 60 | +npm run api |
| 61 | +``` |
| 62 | + |
| 63 | +## :arrow_forward: Deployment |
| 64 | + |
| 65 | +To deploy the project in a node environment: |
| 66 | + |
| 67 | +1. Push the repository to a node server using a service like [Heroku](https://heroku.com). |
| 68 | + |
| 69 | +2. Install the dependencies: |
| 70 | + |
| 71 | +```bash |
| 72 | +npm i |
| 73 | +``` |
| 74 | + |
| 75 | +3. Build the app: |
| 76 | + |
| 77 | +```bash |
| 78 | +npm run build |
| 79 | +``` |
| 80 | + |
| 81 | +7. Start the app: |
| 82 | + |
| 83 | +```bash |
| 84 | +npm start |
| 85 | +``` |
| 86 | + |
| 87 | +You can also do the same to deploy locally. |
| 88 | + |
| 89 | +## :octocat: Technologies |
| 90 | + |
| 91 | +The initial project was generated using [**Vue CLI**](https://github.com/vuejs/vue-cli) tool. |
| 92 | + |
| 93 | +### :computer: Frontend |
| 94 | + |
| 95 | +This frontend app is mainly powered by Vue and its integrated packages: |
| 96 | + |
| 97 | +| Library | Use | |
| 98 | +| :---------------------------------------------------- | :--------------------------- | |
| 99 | +| [**VueJS**](https://github.com/vuejs/vue) | Main JS framework | |
| 100 | +| [**Vue Router**](https://github.com/vuejs/vue-router) | Routing | |
| 101 | +| [**Vuex**](https://github.com/vuejs/vuex) | Centralized state management | |
| 102 | + |
| 103 | +The **GUI** is powered by: |
| 104 | + |
| 105 | +| Library | Use | |
| 106 | +| :------------------------------------------------------------ | :------------------ | |
| 107 | +| [**Bulma**](https://github.com/jgthms/bulma) | Main CSS framework | |
| 108 | +| [**Buefy**](https://github.com/buefy/buefy) | Bulma UI components | |
| 109 | +| [**Bulmaswatch**](https://github.com/jenil/bulmaswatch) | Bulma themes | |
| 110 | +| [**FontAwesome**](https://github.com/FortAwesome/FontAwesome) | Icons | |
| 111 | +| [**AnimateCSS**](https://github.com/daneden/animate.css) | CSS animations | |
| 112 | + |
| 113 | +The frontend app is using these **utilities**: |
| 114 | + |
| 115 | +| Library | Use | |
| 116 | +| :----------------------------------------------------------------- | :----------------------------- | |
| 117 | +| [**Axios**](https://github.com/axios/axios) | AJAX calls | |
| 118 | +| [**Vue Meta**](https://github.com/nuxt/vue-meta) | HTML metadata | |
| 119 | +| [**Moment**](https://github.com/moment/moment/)/ | Dates format | |
| 120 | +| [**Vue Moment**](https://github.com/brockpetrie/vue-moment) | Moment pipes | |
| 121 | +| [**VeeValidate**](https://github.com/logaretm/vee-validate) | Form validation | |
| 122 | +| [**VuexPersist**](https://github.com/championswimmer/vuex-persist) | Data persistence | |
| 123 | +| [**Lodash**](https://github.com/lodash/lodash) | Common and array related tasks | |
| 124 | + |
| 125 | +### :crystal_ball: Backend |
| 126 | + |
| 127 | +The backend **API** and **Database** (_Using [file system](https://nodejs.org/api/fs.html) for the moment_) are powered by: |
| 128 | + |
| 129 | +| Library | Use | |
| 130 | +| :-------------------------------------------------- | :--------------------- | |
| 131 | +| [**Node**](https://github.com/nodejs/node) | JS runtime | |
| 132 | +| [**Express**](https://github.com/expressjs/express) | Main Node JS framework | |
| 133 | + |
| 134 | +The backend app is using these **utilities**: |
| 135 | + |
| 136 | +| Library | Use | |
| 137 | +| :--------------------------------------------------------------------- | :------------------------- | |
| 138 | +| [**Lodash**](https://github.com/lodash/lodash) | Arrays data querying | |
| 139 | +| [**Joi**](https://github.com/hapijs/joi) | Data validation | |
| 140 | +| [**JsonWebToken**](https://github.com/auth0/node-jsonwebtoken) | Authentication | |
| 141 | +| [**Uuid**](https://github.com/uuidjs/uuid) | IDs generation | |
| 142 | +| [**BcryptJS**](https://github.com/dcodeIO/bcrypt.js) | Password hashes generation | |
| 143 | +| [**CommonErrors**](https://github.com/shutterstock/node-common-errors) | Errors classes | |
| 144 | +| [**Colors**](https://github.com/Marak/colors.js) | Console colorations | |
| 145 | +| [**Faker**](https://github.com/marak/Faker.js) | Mock test data generation | |
| 146 | + |
| 147 | +## :triangular_ruler: Design |
| 148 | + |
| 149 | +- :paperclip: [Models](/docs/models.md) |
| 150 | +- :paperclip: [Features](/docs/features.md) |
| 151 | +- :paperclip: [ToDos](/docs/todos.md) |
0 commit comments