Giter Club home page Giter Club logo

noted's Introduction

Mark Watson

USYD-FSF Week11 Project

Express.js: Note Taker

Table of Contents

  1. Project Description
  2. Application Features
  3. Installation
  4. Usage
  5. Credits
  6. License
  7. Repository Status
  8. Contribute
  9. Tests
  10. Checklist

1. Description

What is this project?

  • Simple application demonstrating the benefits of server side data storage by allowing a user to write and save notes to organize and keep track of their tasks.
  • Was refactored for Serverless which can not write / modify server side saved files so a mySQL database was set up to handle the notes data.

Why this project?

  • Demonstrates my understanding of building the back end of a web hosted applications, initially hosted on Heroku using Express and then later refactored as a serverless function for hosting on Netlify.

hosted landing page note space saved confirmation timestamp and editable saved messages

What problem does this project solve?

  • Provides a place to write and keep notes that can easily be retrieved by revisiting the website, providing the save function for the note was completed beforehand.

Lessons learnt?

  • Netlify Lambda Functions are immutable - meaning a JSON can not be modified, however it can be read. As this application reading and writing to the database, a mySQL database was created.
  • Establish and maintain a good directory / folder structure for the application and follow it throughout development.
  • Time stamp ended up being a pain as Heroku server's are understandably set to UTC so the time stamp is not local. Messed around trying to adjust for local time but opted for the easier solution of marking the timestamp as UTC. Could use Moment.js in future revision or a user settings area for them to provide their local time offset.

2. Features

Client requested features as implemented:

  • has a landing page with a link to a notes page
  • clicking on the link to the notes page present the user with a page with existing notes listed in the left-hand column, plus empty fields to enter a new note title and the note’s text in the right-hand column
  • entering a new note title and the note’s text causes the 'Save' icon to appear in the navigation pane at the top of the page
  • clicking on the Save icon has the new note just entered saved and appearing in the left-hand column with the other existing notes
  • clicking on an existing note in the list in the left-hand column results in the note appearing in the right-hand column
  • clicking on the Write icon in the navigation at the top of the page provides an empty field to enter a new note title and the note’s text in the right-hand column.
  • for saved notes, clicking on the bin icon deletes the note entry from the saved notes.
  • I disabled the 'read-only' for saved messages as I got the delete function to work so the user can easily delete the former note or repurpose it. Messages are time stamped (UTC) to help them keep track of their notes.

3. Installation

You can download the source code from my Github repository and open the index.html file to review the website inside your selected web browser.
Alternatively, the webpage is hosted at URL: https://not3d.netlify.app/


4. Usage

The code can be downloaded from my Github repository for all assets created for the project.
You can modify the code as you need. The application is hosted on Netlify


5. Credits

University of Sydney's Bootcamp Coding course for the starter code provided for the front end / client side. There was no back end code provided. All back end coding was by me and I completed some refactoring of the front end. Thanks to Bootcamp for a well thought out and coded client side.


6. License

The works in this repository are subject to:

GitHub


7. Github repo status

GitHub top language GitHub language count GitHub last commit GitHub commits in last month GitHub commit checks state


8. How to Contribute

If you would like to contribute, please comply with the Contributor Covenant Code of Conduct:

Contributor Covenant


9. Tests

  • No unit test have been prepared for this project. Testing on devices completed. I wanted to but ran out of time.

10. Checklist

All actions not checked are still to be completed:

  • Application front end connects to an Express.js back end.
  • Application back end / server side stores notes with a unique id in a JSON file.
  • Application is deployed with Netlify at URL: not3d.netlify.app
  • NO longer deployed live with Heroku. This location is no longer working: URL: not3d.herokuapp.com
  • Application loads with no errors.
  • GitHub repository contains application code Github location
  • The GitHub repository contains all the application code.
  • Application console is free of errors.
  • Repository has a unique name; follows best practice for file structure; and naming conventions.
  • The application resembles the mock-up functionality provided in the assigment instructions.
  • Repsository follows best practices for class/id naming conventions, indentation, quality comments, etc.
  • Repository contains multiple descriptive commit messages.
  • Repository contains a README file with descriptio, screenshot and link to deployed application.
  • Application allows user to delete notes.

noted's People

Contributors

mark33mark 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.