GithubHelp home page GithubHelp logo

11carmel11 / url-shortener Goto Github PK

View Code? Open in Web Editor NEW

This project forked from suvelocity/cyber4s-final1-boilerplate-url-shortener

0.0 0.0 1.0 3.25 MB

JavaScript 24.07% CSS 26.68% Shell 0.78% HTML 48.47%

url-shortener's Introduction

Scale-Up Velocity Final 1 - URL shortener ๐Ÿ“Ž

In this project you will create your own URL shortener!

This repository includes a basic template for starting the project:

Instructions

  • Fork this repository to your account as a public repo
  • Clone your new repository to your computer ๐Ÿ–ฅ
  • Install the project dependencies by running npm install from the vscode terminal ctrl + j (make sure you are in the correct directory) ๐Ÿ“‚
  • Create a new branch for the development process
  • Make changes to the code to meet the project requirements ๐Ÿ“
  • Commit Early, Push Often - your work will be evaluated by your git flow and overall github usage ๐Ÿ„โ€โ™‚๏ธ
  • Before submitting, create a pull request from the development branch into the main branch. Leave the PR open and do not merge the branches. The open PR will be used to review and mark your code
  • Good Luck! ๐Ÿค˜

Guidelines

  • Create a route /api/shortUrl/ in your express app that will handle all url shortening requests. (We recommend using express Router)

  • Write/read Asynchronously a single JSON file as your DB

  • Serve your client files from your server at route /

  • Style and change your front-end as you wish. You can take inspiration from this example

Requirements

  • Examine thoroughly and copy all functionality of this FCC example

  • Use a class DataBase{} to read/write (Asynchronously) all data in your back-end (you can use a json file as persistent layer)

  • Add another functionality to your service: a statistics route (api/statistic/:shortUrl-id) that will respond with the following data per shortUrl-id:

    • creationDate - a SQLDate format
    • redirectCount - the amount of times this url was used for redirection
    • originalUrl
    • shortUrl-id

Bonus

  • Add any feature you desire. Some ideas worth extra points:
    • Custom short URL. Support optional shortUrl-id parameter in your POST request. Pay attention to error handling.
    • Serve a styled statistics dashboard instead of the default JSON statistics
    • Use the jsonBin.io service bin as your persistent layer in your back-end DB class (use CRUD operations to read write bins)
    • Try implementing user management

Add an explanation in README.md for each bonus feature you add and a link to any resource you used

Grading policy

  • Using jsonbin.io with/instead of writing to files
  • Correct DB class usage
  • Code quality and style: indentation, Meaningful and non-disambiguate variable names, Comments and documentation, file and directory structure
  • Visual creativity, style your front-end to make it look awesome ๐Ÿ’…๐Ÿฟ
  • Division to reusable functions, no code duplication
  • Git usage: meaningful commit messages, small commits, folder and file structures, README file, issues, etc...

Submitting

  • Submit your solution repo link - an open PR from your dev branch to the main one
  • Your readme should have a repl.it link with your solutions.
  • Submit a link to your repo to the CRM.

GOOD LUCK!

url-shortener's People

Contributors

listguy avatar 11carmel11 avatar tomeryp avatar

Forkers

ronco1812

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.