GithubHelp home page GithubHelp logo

woo-paypal-here's People

Contributors

kcppdevelopers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

woo-paypal-here's Issues

WC Order Payment Status not updating properly..??

Just a little bit earlier today I ran a test and the WC order was marked Processing and had PayPal Here as the payment type...

image

I just now ran another test, though, and the order did update to Processing, but the other detail for payment did not come through...

image

Not sure what went wrong this time..??

Testing Phase 1 feedBack : Functionlity Problems

1- Transactions getting cacnled based on time ( not sure but had 2 experienced of this )
After cancellation it took you back to main site with following URL
This URL.

http://woo.angelleye.com/paypal-here%7Bresult?Type=UNKNOWN&Number=WC-PH-AH-14593

Not sure if this is the case:
if shipping is not passed then transaction is being cancelled
For me 1 time it worked without shipping but that was like I hit Send to PayPal here and without a delay I paid and it went well

After successful transaction it showed me a screen to with new sale button , i tap that and it took me to follow url ( back to browser ).

http://woo.angelleye.com/paypal-here%7Bresult%7D?Type=CASH&Number=WC-PH-AH-14594&InvoiceId=INV2-VRFK-C7CQ-LRN8-ZBU8&Tip=0

2- Suggestion

Anotherthing.

While added shipping can't we make it ajax based like once selected the shipping a small loader would be added next to the shipping text and then update rather reloadimg the page?

3- Issue:
image 2
the highlighted parameter is the one 1 searched on the view_products page, why that same search is passed here?

also when that is passed as parameter you can see its showing pending orders as 1

But go ahead and remove that then you will see all 5 pending orders.

Any IP otherthan Pakistani IP is OK to view the site, this is not good BTW , why not Pakistani IP???

Proxy server required for web app..??

For some reason when @iMansoorAliKhan pulls the web app up on his phone he has to connect through a proxy in order to get it to work. This is not required when he views the regular woo.angelleye.com site, though, so we're not sure what's going on with that..??

Pending Order List

I'd like to make an adjustment to the display name on the pending orders list. Right now I have the following pending orders in WC...

image

When those orders are pulled up in our pending order list, though, it shows N/A instead of the name for one of the orders.

image

That order does not have any billing/shipping info, while the others do, so we must be pulling the billing name here instead of the user/customer name. Would like to adjust so we always see a name just like the actual WC list shows.

Settings - View Products

Within the WP settings for the plugin we should give the user options for how to display the "View Products" screen in the web app.

By default we can have it display "Featured Products", for example, but the user may want to change this to display "New Products", "Top Selling Products", etc.

Web App - Can't start new order..??

I had a pending order loaded in the web app, but I did not complete that order. I then closed all mobile browser windows and clicked on the QR code to load the web app dashboard. I clicked to create a new order, entered a billing address, and then added an item.

At this point the new item was added to a cart that still had all the items from the pending order I had loaded previously. Need to set this thing so that it clears out the session when I start a new one from the QR code or figure out some way to manage new orders better.

WP Plugin Settings Page

We'll need to build a general settings page for the plugin inside WordPress. This can go under WooCommerce -> Settings -> Checkout where it lists all the other gateway settings.

image

image

We'll need to add functionality in here that lets people quickly and easily setup WooCommerce REST API credentials that are to be used with this web app. If possible, I'd like to automatically generate the REST API credentials based on pushing a button to avoid sending the user around to different screens. We may need to simply guide them on how to create the credentials.

We should also setup a way for the user to set what endpoint to use for the web app (eg. {site_url}/paypal-here). The QR code displayed would have the value of this web app URL so that it can be scanned using a mobile device to load the app easily.

PHP Errors..??

This just started happening today for some reason while I was doing my demo with PayPal. In this case I'm trying to load pending orders.

Notice: Undefined property: Paypal_Here_Woocommerce_Rest_API::$woocommerce in /home/angelley/sandbox_woocommerce/wp-content/plugins/woo-paypal-here/includes/class-paypal-here-woocommerce-rest-api.php on line 74

Fatal error: Uncaught Error: Call to a member function get() on null in /home/angelley/sandbox_woocommerce/wp-content/plugins/woo-paypal-here/includes/class-paypal-here-woocommerce-rest-api.php:74 Stack trace: #0 /home/angelley/sandbox_woocommerce/wp-content/plugins/woo-paypal-here/includes/class-paypal-here-woocommerce-end-point.php(294): Paypal_Here_Woocommerce_Rest_API->angelleye_paypal_here_get_pending_order() #1 /home/angelley/sandbox_woocommerce/wp-content/plugins/woo-paypal-here/includes/class-paypal-here-woocommerce-end-point.php(285): Paypal_Here_Woocommerce_End_Point->angelleye_paypal_here_display_order_list() #2 /home/angelley/sandbox_woocommerce/wp-includes/class-wp-hook.php(286): Paypal_Here_Woocommerce_End_Point->angelleye_paypal_here_view_pending_orders_body_content('') #3 /home/angelley/sandbox_woocommerce/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #4 /home/angelley/sandbox_woocommerce/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #5 /home/angelley/sandbox_woocommerce/wp in /home/angelley/sandbox_woocommerce/wp-content/plugins/woo-paypal-here/includes/class-paypal-here-woocommerce-rest-api.php on line 74

WordPress Plugin Directory Approval Feedback

There are issues with your plugin code.

Please read this ENTIRE email, address all listed issues, and reply to this email with your corrected code attached (or linked). It is required for you to read and reply to these emails, and failure to do so will result in significant delays with your plugin being accepted.

Also please remember in addition to code quality, security and functionality, we require all plugins adhere to our guidelines. If you have not yet, please read them:

Calling images remotely

Offloading images to your own server is disallowed.

Please include all images needed for your plugin locally.

Example:

https://www.paypalobjects.com/webstatic/mobile/hob/web/pp_here_flat.png
https://woocommerce.com/wp-content/themes/woo/images/[email protected]
https://www.angelleye.com/wp-content/uploads/2015/06/angelleye-logo-159x43.png

Generic function (and/or define) names

All plugins must have unique function names, defines, and classnames. This prevents your plugin from conflicting with other plugins or themes.

For example, if your plugin is called "Easy Custom Post Types", then you might prefix your functions with ecpt_{your function name here}. Similarly a define of LICENSE would be better done as ECPT_LICENSE. You can use namespaces instead, however make sure that those also are unique. A namespace or class of 'MyPlugin' is NOT actually all that unique.

This extends to anything in a define. For example, if you were to use this, it would be a bad idea:

define( 'PLUGIN_PATH', plugins_url( FILE ) );

That define is a global, so PLUGIN_PATH could conflict with a number of other things.

Don't try to use two letter slugs anymore. As of 2016, all the good ones are taken. Instead consider easy_cpts_ (from the first example).

Similarly, don't use __ (double underscores), wp_ , or _ (single underscore) as a prefix. Those are reserved for WordPress itself. You can use them inside your classes, but not as stand-alone function.

Please update your plugin to use more unique function and class names.

Some examples from your plugin:

define('PAYPAL_HERE_PLUGIN_DIR', dirname(FILE));
function angelleye_load_end_point()

Please sanitize, escape, and validate your POST calls

When you include POST/GET/REQUEST calls in your plugin, it's important to sanitize, validate, and escape them. The goal here is to prevent a user from accidentally sending trash data through the system, as well as protecting them from potential security issues.

SANITIZE: All instances where generated content is inserted into the database, or into a file, or being otherwise processed by WordPress, the data MUST be properly sanitized for security. By sanitizing your POST data when used to make action calls or URL redirects, you will lessen the possibility of XSS vulnerabilities. You should never have a raw data inserted into the database, even by a update function, and even with a prepare() call.

VALIDATE: In addition to sanitization, you should validate all your calls. If a $_POST call should only be a number, ensure it's an int() before you pass it through anything. Even if you're sanitizing or using WordPress functions to ensure things are safe, we ask you please validate for sanity's sake. Any time you are adding data to the database, it should be the right data.

ESCAPE: Similarly, when you're outputting data, make sure to escape it properly, so it can't hijack admin screens. There are many esc_*() functions you can use to make sure you don't show people the wrong data.

In all cases, using stripslashes or strip_tags is not enough. You need to use the most appropriate method associated with the type of content you're processing. Check that a URL is a URL and don't just be lazy and use sanitize_text please. The ultimate goal is that you should ensure that invalid and unsafe data is NEVER processed or displayed. Clean everything, check everything, escape everything, and never trust the users to always have input sane data.

Please review this document and update your code accordingly: https://developer.wordpress.org/plugins/security/securing-input/

Example:

$product_id = $_POST['product_id'];
$coupon_code = $_POST['coupon_code'];
$order_id = $_POST['order_id'];
'amount' => str_replace('%', '', $_POST['paypal_here_percentage']),

Calling files remotely

Offloading images, js, css, cgi, and other scripts to Google (or jquery.com or anywhere else frankly) is disallowed because you're introducing an unnecessary dependency on another site. If the file you're trying to use isn't a part of WordPress Core, then you should include it -locally- in your plugin, not remotely. If the file IS included in WordPress core, please call that instead.

The one exception to this rule is if your plugin is performing a service. We will permit this on a case by case basis, however since this can be confusing, we have some examples of what are not permitted:

  • Offloading jquery CSS files to Google - You should include the CSS in your plugin.
  • Inserting an iframe with a help doc - A link, or including the docs in your plugin is preferred.
  • Calling images from your own domain - They should be included in your plugin.

Here are some examples of what we would permit:

  • Calling font families from Google or their approved CDN (if GPL compatible)
  • API calls back to your server to process possible spam comments (like Akismet)
  • Offloading comments to your own servers (like Disqus)
  • oEmbed calls to a service provider (like Twitter or YouTube)

Please remove this dependency from your plugin and, if possible, include all files within the plugin (that is not called remotely). If instead you feel you ARE providing a service, please re-write your readme.txt in a manner that explains the service, the servers being called, and if any account is needed to connect.

Example:

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css
//cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js

We cannot accept your plugin with this name

Your autogenerated plugin slug was this: paypal-here-for-woocommerce

Since you don’t appear to legally represent that group, we need to change the plugin slug.

We recommend the following: woo-paypal-here

You also need to change the display name to not BEGIN with that term.

A rather lengthy explanation of why is included below, but the tl;dr is that we're no longer accepting plugins that begin with (or are in total) a trademarked product name or term as the name or slug of a plugin (ex: Facebook or google-maps-bathrooms). Nor are we accepting plugins that include the name of another plugin at the beginning of the name/slug (eg: contact-form-7-music), UNLESS you legally represent that service/plugin/theme/etc.

Please reply to this email with what slug you’d like. We’ll edit it slug for you.

You DO NOT need to edit your code for this. ALL we need is to be on the same page for the plugin slug :)

If you DO work for the company, reply to this email and tell us. We can fix your submission.

Here's the long stuff.

The slug for your plugin is generated based on the name you put in your main plugin file, with hyphens inserted in place of spaces. This means if you were to name your plugin "My Really Cool Cookie Jam" then your URL on WordPress.org would be http://wordpress.org/plugins/my-really-cool-cookie-jam

This becomes a larger issue when plugins use the names of other plugins in their own.

For example, if you have written an add-on plugin for WooCommerce, you may not name it "WooCommerce Improved Product Search" as that would generate the slug "woocommerce-improved-product-search" and that would conflict with the trademark of 'WooCommerce.' That said, it would be acceptable to submit the name "Woo Improved Product Search" which would use the slug "woo-improved-product-search" (woo not being trademarked you see).

As another example, if you have a plugin that integrates a service with a Easy Digital Downloads, you may call it "My Service Integration for Easy Digital Downloads", but you may not use "Easy Digital Downloads - My Service Integration". Alternately you could use 'EDD My Service Integration' and that too would be permitted.

Consider the example of Keurig. If you made an eco-friendly brew cup, you could market it "EcoBrew Pod for Keurig" but you could NOT attempt to market it as "Keurig EcoBrew Pod." The latter implies a direct relationship to Keurig and is actually against the law in some countries. In order to protect you, we need you to tread lightly with recognized brand names and trademarks. Always err on the side of caution, becuase if they come and tell us to close your plugin becuase you used their term FIRST in the display name, we have to do it :(

If you got all the way down here and forgot what to do next, just reply to this email and tell us what slug you’d like, or if you need to transfer the plugin to a different account. We can fix the plugin.


Please make sure you've addressed ALL issues brought up in this email. When you've corrected your code, reply to this email with the updated code attached as a zip, or provide a link to the new code for us to review. If you use gmail, you won’t be able to send a ZIP file if it contains any JS files (yes, we know it’s stupid, blame Google).

If you have questions, concerns, or need clarification, please reply to this email and just ask us.

(While we have tried to make this review as exhaustive as possible we, like you, are humans and may have missed things. As such, we will re-review the ENTIRE plugin when you send it back to us. We appreciate your patience and understanding in this.)

Web App - View Products

When the user clicks "Add Item" from the New Order Screen this screen would display. The default items listed should be pulled from the WP settings option we added in #4.

image

Add item is getting hung up..??

This was working previously, but now when I try to add a new item to a new order or an existing order from the web app it's getting hung up.

I'm able to view the product list and select a product. It pops up the secondary window where I can choose the QTY and attributes, but then when I click the Add Item button from here it never moves on. I get stuck a default windows/browser spinner and it won't actually add the item and move on.

image

Web App - View Pending Orders

We'll need a page in the web app that pulls WooCommerce pending orders via the REST API and displays them in the app.

image

The list will be displayed sorted by most recent orders, and the user could also use the search. Clicking on an order from the list would load the Order screen in the web app with all items, shipping, tax, coupons, etc. applied accordingly.

PayPal Here Sideloader

When an order is fully prepared in our web app the user would push "Send to PayPal Here". This will pass all of the order to the actual PayPal Here app using their Sideloader (https://github.com/paypal/here-sideloader-api-samples/tree/master/web).

The user will follow the steps inside the Here app to complete the payment processing.

image

When the "New Sale" button is pushed from within Here it should send the user back to our web app Dashboard.

'

'

Web App - Dashboard

The dashboard will be the first screen the user sees when they load the PayPal Here for WooCommerce web app directly.

The web app will run out of {site_url}/paypal-here in the WP system, so we'll need to make use of WP endpoints to set this up properly.

image

Products Not Found..??

Products are no longer displaying when I try to view products from the web app. It just says "No products found".

Web App - Apply Discount

From the Order Screen (#7) the user can apply a discount, and this view would be displayed for that:

image

So the user will have the ability to enter a flat rate or percentage page discount directly, or they could also enter a coupon code. The coupon code field should be a drop-down that also acts as a regular text field, and if you are typing in a coupon code it should use AJAX to search on the fly and update the drop down accordingly.

QR Code in Order Screen

On the order screen in WC the QR code for PayPal Here is showing up even on orders that are already in Processing status. The QR code for Here should only show up for orders that still need to be paid.

PayPal REST APIs to update WC order status..??

Right now the only way the WC order status gets updated is if the user remembers to click "New Sale" after completing a payment in the PayPal Here app. This is going to get missed a lot, and WC orders will not get updated properly.

We should be able to add a fail-safe to this by using the PayPal REST APIs. Our plugin could setup a CRON job that runs on a given interval, and this script could check all of the WC pending orders against the PayPal API to see if it's been paid or not. Any pending order that comes back as paid by PayPal would be updated accordingly.

WC order did not update after marking paid from mobile.

As a test, I loaded Pending Orders from the mobile web app, which displayed 4 pending orders in my WC system.

I selected one of them, marked it paid with cash, but the WC order status is still pending, and it still shows up in the pending list instead of being marked as completed / paid.

Web App - Order Flow Adjustment

Right now when creating a new order from the web app the first thing I have to do is enter billing/shipping info. I would rather change it so that the first step is adding product(s) and gather an order total. Then if/when the buyer is ready to actually pay, that's when the user could go ahead and add the billing/shipping info.

This way the site owner / app user can quickly load up items to tell people totals, etc. without having to type in a bunch of stuff and waste time until they know they're actually ready to complete the order.

WC REST API

I just did a fresh install of WP on a new dev laptop. I installed our dev branch here, and I was immediately given a notice in the admin panel that the WC rest keys were not available. I generated that through the plugin settings, and the admin notice went away.

However, on the front end of the site I still getting a notice about the WC API keys not being available. I disabled the Here plugin and the front-end message was gone. I then re-acticated the Here plugin and the message did NOT come back, but something about that initial clean install did not go smoothly with the keys.

Log Needs Cleanup

When I view the PayPal here log file in WC Status section it's giving me a very long horizontal scroll bar, and most of the logged data is stretched way out on a very long line so I have to scroll to see everything.

Need to clean up this log so it's more easily readable. Would be good to see the JSON actually displayed the way it would if you validated it using an online tool.

Action Links

Need to create action links for Docs, Support, and Review similar to what we did with PayPal for WooCommerce. You can leave placeholders for the links and I'll fill in the URLs.

Windows 10 Compatibility..??

On my Surfacebook, which runs Windows 10 Pro, I have the PayPal Here app installed. The Send to Here button in our web-app does not trigger the Here app on Windows, though. Any way to get it working?

Web App - Add Item

When adding an item to an order we'll follow the design model that the PayPal Here app itself uses.

image

Attributes / Variations form WooCommerce should display accordingly in this view. For example, in the screenshot we have "Sizes" with options for Small and Large, where Large adds a $2.00 upcharge. All attributes/variations should be available here as sections.

Tax rules should also be included here so people can choose whether or not to apply a particular tax rule to this item being added.

All attribute/variation/tax data will be pulled from WC using the REST API.

Testing Phase 1 Feedback: Design Issues Suggestions

image

The close button is not center aligned also need to be 2 pixel big

  • And - background should match the border color of the input field

The add item button in my last screenshot is blue while in the product selection popup its while . 2 suggestions.

  • make it blue.
  • it would be great to add that to footer on that popup

Web App - Apply Shipping

From the order screen, if the user pushes the Shipping item it would load this display:

image

The user can enter a flat rate or percentage based shipping amount directly, or they could also enter a postal code to have shipping rules from WC triggered and calculated accordingly for the order.

Tax not carrying over..??

From woo.angelleye.com, I loaded the web app using the QR code, and then I clicked to View Pending Orders. I selected an order with $10.00 product and .77 taxes, for a total of $10.77. When I click the button to send to the Here app, it only carries over $10.00 total.

Problems again with updating the order after a completed sale..??

I just did another test on the current dev branch. Upon completing the order in PayPal Here and clicking New Sale, I was returned back to the web app, but it sent me to the normal dashboard screen. I did not see the success message in our app like I was seeing before.

The order status in WooCommerce DID update to Processing, and it does show Paid, however, it does not show the transaction ID or the PayPal Here payment type the way it did before. We had this issue before and it was since fixed, but now it just happened to me again.

image

Cart User Experience - Shipping confusion

When I add a new item to the cart it shows Shipping Free! Shipping options prior to gathering billing/shipping info should be based on the WooCommerce option for whether to include shipping on the cart page.

image

WC Checkout Page Gateways

Right now PayPal Here is showing up in the list of payment methods during a regular checkout on the website. Is that intended to be used by the buyer at this point? If the buyer selects PayPal Here are we saving the order in WC so that it can later be paid within the Here app?

Improvement to item removal.

In #19 we added the ability to remove items from the cart. It looks like this is happening as a page reload and would be better with AJAX instead.

PayPal Here App Failures

Our app is failing for me quite a bit when I try to submit payments after sending to PayPal Here. PayPal tech support has taken a sample of our sideloader request and replicated the request in their own test app. It seems to work fine for me every time when I test from their app: https://hidden-reaches-51594.herokuapp.com/

         function onPay() {
           var itemsArr = [];
           var invoice = {};
           var myItems = {};
           var myItem = {};
         var billingInfo = {};
         var address = {}
         var shippingInfo = {};
           
           myItem['name'] = "Vendor Widget";
           myItem['quantity'] = "3.0";
           myItem['unitPrice'] = "100.00";

           itemsArr.push(myItem);
         myItem = {};
         myItem['name'] = "Premium Quality";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "20.00";

         itemsArr.push(myItem);

         myItem = {};
         myItem['name'] = "Ship Your Idea";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "15.00";

         itemsArr.push(myItem);
myItem = {};
         myItem['name'] = "Woo Ninja";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "35.00";

         itemsArr.push(myItem);
myItem = {};
         myItem['name'] = "Woo Album #1 - Vinyl";
         myItem['description'] = "Media-type: Vinyl";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "25.00";

         itemsArr.push(myItem);
myItem = {};
         myItem['name'] = "Premium Quality";
         myItem['description'] = "Media-type: Vinyl";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "20.00";

         itemsArr.push(myItem);
myItem = {};
         myItem['name'] = "Tax";
         myItem['description'] = "Tax Amount";
         myItem['quantity'] = "1.0";
         myItem['unitPrice'] = "31.91";

         itemsArr.push(myItem);
           myItems['item'] = itemsArr;

         invoice['itemList'] = myItems;

         billingInfo['firstName'] = "Tester";
         billingInfo['lastName'] = "Test";
           billingInfo['businessName'] = "Testers, LLC";
         address['line1'] = "123 Test";
         address['city'] = "Grandview";
         address['state'] = "MO";
         address['postalCode'] = "64082";
         address['countryCode'] = "US"
         billingInfo['address'] = address;

         invoice['billingInfo'] = billingInfo;

         shippingInfo['firstName'] = "John";
         shippingInfo['lastName'] = "Doe";
         address['line1'] = "123 Test Ave";
         address['city'] = "Kansas City";
         address['state'] = "MO";
         address['postalCode'] = "64111";
         address['countryCode'] = "US"
         shippingInfo['address'] = address;

           invoice['shippingInfo'] = shippingInfo;

           invoice['paymentTerms'] = 'DueOnReceipt';
           invoice['currencyCode'] = 'USD';
           invoice['discountPercent'] = '0';
           invoice['merchantEmail'] = '[email protected]';
           invoice['payerEmail'] = '[email protected]';
          
           var returnUrl = 'http://wp1175175.wp220.webpack.hosteurope.de/speedhack/index.html';
           var retUrl = encodeURIComponent(returnUrl + "?{result}?Type={Type}&InvoiceId={InvoiceId}&Tip={Tip}&Email={Email}&TxId={TxId}");
           var pphereUrl = "paypalhere://takePayment?returnUrl=" + retUrl;
           pphereUrl = pphereUrl + "&accepted=cash,card,paypal"
           pphereUrl = pphereUrl + "&step=choosePayment";
           pphereUrl = pphereUrl + '&invoice=' + escape(JSON.stringify(invoice));
           console.log(pphereUrl);
          
           return pphereUrl; 
      }

Tax application..??

In WooCommerce I created an order that does not include any tax. It's a $40.00 order with nothing but items on it, no tax or shipping. When I scan the QR code for this order it pulls pulls up in our web app with $3.08 tax applied. I'm not sure where that's coming from..??

Clear sale updates WC order status to failed..??

I opened a pending order and sent it to PayPal Here. I then used "Clear Sale" in the Here app to cancel the order, which automatically redirected me back to our web app dashboard. The order I was in got updated to Failed in WC.

I'm not sure if I like that or not. We'll discuss this more and try to get some user feedback for 1.0 release.

Feedback Tool

Add a way for people to send feedback to us. Enter email and comment and send to specified email.

QR Code to load order directly.

Need to add a QR code in unpaid WC orders that lets you scan to load that exact order directly in our web-based app.

image

So scanning that code would load the order fully into our web app order screen. From here the user could make adjustments if necessary and then process the payment using PayPal Here. Any adjustments that are made need to be pushed back to the WC order.

Web App - Order Screen

When loading an order from View Orders (#3) or while creating a new order from the Dashboard (#1) we'll follow the same design as PayPal Here itself:

image

Pushing Add Item here would load our products page (#5), and the user should also be able to search for products to add quickly. Pushing on an item in the list would load the Item view (#6) so it can be adjusted or removed from the order.

Pushing Discount, Shipping, Tax would load those views accordingly so adjustments can be made.

Web App - Home Button

When browsing the web app there is no way for me to get back to the dashboard easily. We have our little menu button (3 horizontal lines) but it's not doing anything right now. Let's add an item in there for the Dashboard.

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.