npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

store-front-by-amr

v1.0.2

Published

<div float="left" align="middle">

Downloads

5

Readme

Store Front

Project Requirements

Build a JavaScript API based on a requirements given by the stakeholders. You will architect the database, tables, and columns to fulfill the requirements. Create a RESTful API to be accessible to the frontend developer. You will also have written test, secured user information with encryption, and provide tokens for integration into the frontend.

Installation

You need to have Node & Docker installed in your machine, then you can follow one of these two ways to clone and install project dependencies.

One way

  • Is to open your terminal and run command npx store-front-by-amr <Project-Name> & follow instructions on your terminal.

Another way

1- clone repo on https://github.com/3amr7ussein/store-front you local machine

2- cd into project directory and run npm install

3- run docker-compose up & keep this terminal running

4- Open new terminal and run project scripts

  • npm run test to run jasmine unit test on the project

  • npm start to fill database with dummy data & start server on http://localhost:4000

Endpoints

Main Route

| HTTP Verbs | Endpoints | Action | | ---------- | --------- | ----------------- | | GET | /signup | Sign Up [Page] | | POST | /signup | Create New User | | GET | /signin | Sign In [Page] | | POST | /signin | Authenticate user | | GET | /signout | Remove user token |

users/ Route

| HTTP Verbs | Endpoints | Action | | ---------- | ------------- | ---------------------------------------------------- | | GET | / | Users Table [Require Authentication] | | GET | /current-user | current logined user [Require Authentication] | | GET | /search | Search User By ID [Page] [Require Authentication] | | POST | /:id | Get data of user with :id [Require Authentication] |

products/ Route

| HTTP Verbs | Endpoints | Action | | ---------- | ------------------- | -------------------------------------------- | | GET | / | Products Table [Require Authentication] | | GET | /top | top 5 popular products | | GET | /create | New product [Page] [Require Authentication] | | POST | /create | Add new product row [Require Authentication] | | GET | /search | Search Products [Page] | | GET | /:id | Search Product By :id | | GET | /category | Find product by category [Page] | | GET | /category/:category | Search Products by :category |

orders/ Route

| HTTP Verbs | Endpoints | Action | | ---------- | ------------------ | ------------------------------------------------------------- | | GET | / | Orders Table [Page] | | GET | /create | New Order [Page] | | POST | /create | Add New Order Row | | GET | /addItem | New Order Item [Page] | | POST | /addItem | Add New Order Item | | GET | /current | User Active Order [Page] [Require Authentication] | | GET | /current/:userId | Get User Active Order by userId [Require Authentication] | | GET | /completed | User Completed Order [Page] [Require Authentication] | | GET | /completed/:userId | Get User Completed Order by userId [Require Authentication] |

Database Schema

Used Technologies

  • NodeJS This is a cross-platform runtime environment built on Chrome's V8 JavaScript engine used in running JavaScript codes on the server. It allows for installation and managing of dependencies and communication with databases.

  • ExpressJS This is a NodeJS web application framework.

  • Postgres PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.

  • Jasmine Jasmine is a behavior-driven development framework for testing JavaScript code.

  • Docker Docker’s comprehensive end to end platform includes UIs, CLIs, APIs and security that are engineered to work together across the entire application delivery lifecycle.