Git Product home page Git Product logo

trendyol-case's Introduction

Feedbacky

logo


Feedbacky Demands   |    About   |    Integration   |    Technologies   |    Requirements   |    Getting Started   |   

🧾 Feedbacky Demands

Let’s imagine that you’ve decided to build a start-up and that you have a great idea, which is a feedback system that enables customers to give feedback on e-commerce websites. You are both the founder and technical chief of your startup.

So, let’s start building your startup!

Here are the Acceptance Criteria:

  • You don’t have access to your clients’ code base
  • Your client-side code should be easily integrable
  • You should show your client’s feedback in a simple HTML table or on a Google Sheet File
  • Expected code coverage is 100%
  • You can use any tech stack which you feel comfortable with

Your first customer is Trendyol, and you can reach Trendyol’s expectations on the images below:

Nice to have topics that could help your possible client to buy your service:

  • An online demo
  • Well documented product
  • Dealing with security concerns
  • Bug free and 100% unit test coverage
  • Well performanced client side library
  • Responsive Design
  • Clean code and readable folder structure

PS: Please include "case is done" in your last commit.

Follow Us!

Trendyol Tech Medium

Trendyol Open Source GitHub

Trendyol Tech Youtube

Trendyol Tech Kommunity

ℹ️ About

This project was developed for Trendyol Case. Acceptance criteria is above. I tried to apply all requirements. The project is divided into two pieces, these are front-end and back-end. Detailed package information is given below section.

Front-End

I used React and developed React Web Widget because that is the easiest way for customer-side integration. The app is covered by unit tests and end-to-end tests. The app provided a feedback icon and feedback modal. I tried to apply the TDD approach and used Typescript. I served the CDN JavaScript file and CSS file.

https://trendyolcase1.herokuapp.com/main.js https://trendyolcase1.herokuapp.com/main.css

Back-End

The back-end app is developed via NodeJS and ExpressJS. It deployed in Heroku(only the backend). Which helps the CDN process with static file serving service. I used EJS for serving company feedback. That helped a simple and good shape table.


https://trendyolcase1.herokuapp.com/


https://trendyolcase1.herokuapp.com/feedback/trendyol

When your development is done, you have to run npm build. That command creates main.js and main.css files. Move that file into the backend/public. Change remote origin to Heroku and push it. It will deploy with new files

🚀 Technologies

The project was developed using the following technologies:

🌱 Minimal Requirements

🔰 Getting Started

Cloning the repository:

  • $ git clone https://github.com/DevelopmentHiring/SuhaIsik

Download the dependences:

This project has 2 projects inside of it

Every step has own install.You can follow regular installation

🔗 Regular Installation

For Front-End

  • cd frontEnd/feedbackyfe
  • npm install
  • Run: npm start
  • Coverage: npm run coverage
  • Unit Test: npm test
  • End To End Test: npm test:e2e

For Back-End

  • cd backend
  • npm install
  • Run: npm start
  • Unit Test: npm test

🔧 Integration

The integration process is very easy. You need to import feedbacky's JS and CSS files and define a single div element with a selected `feedbacky-widget` ID.

https://trendyolcase1.herokuapp.com/main.js https://trendyolcase1.herokuapp.com/main.css

The app is going to find the element and render it inside. The Feedbacky button sticks to the bottom of the page and modal overlays all pages. data-subreddit attribute defines your company id.

Example usage; <div id="feedbacky-widget" data-subreddit="trendyol"></div>

Example Html file

<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
<body>
  <script src="https://trendyolcase1.herokuapp.com/main.js" defer type="module"></script>
  <link rel="stylesheet" href="https://trendyolcase1.herokuapp.com/main.css">
  <div id="feedbacky-widget" data-subreddit="trendyol"></div>
  <!-- YOUR CODES HERE -->
</body>
</html>

For the live example, Please open example.html on root.

trendyol-case's People

Contributors

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