TinyApp is a full-stack web application built with Node.js and Express that allows users to shorten long URLs (similar to bit.ly). Users can create, manage, and delete their own collection of shortened URLs once they register and log in.
_ This project was created and published as part of my learnings at Lighthouse Labs.
BEWARE: This library was published for learning purposes. It is not intended for use in production-grade software.
TinyApp is a simple multipage app:
-
with authentication protection
-
that reacts appropriately to the user's logged-in state,
-
and permits the user to create, read, update, and delete (CRUD) a simple entity (e.g. blog posts, URL shortener).
-
User Registration & Login:
- Users can register with an email and password.
- Passwords are encrypted using bcrypt.
- Sessions are managed using cookies.
-
URL Shortening:
- Authenticated users can create new short URLs for any long URL.
- Short URLs redirect users to their corresponding long URLs.
-
URL Management:
- View all URLs created by the logged-in user.
- Edit or delete existing URLs.
-
Permissions:
-
Users can only view, edit, or delete URLs they created.
-
Non-logged-in users are redirected to the login page.
- Node.js
- Express
- EJS
- bcrypt
- cookie-parser
- cookie-session
- chai
- mocha
- nodemon
-
Clone the repository:
git clone https://github.com/Mariahhm42/tinyapp.git
-
Install dependencies:
npm install
-
Start the server:
npm start
-
Open your browser and navugate to:
http://localhost:8080