Git Product home page Git Product logo

samwise's Introduction

Samwise E-Commerce CMS

Installation Process

  1. composer install
  2. npm install
  3. Install Virtual Box
  4. Install homestead with php vendor/bin/homestead make
  5. Start up server with vagrant up
  6. Set up default env variables cp .env.example .env
  7. Generate a key for Laravel php artisan key:generate
  8. Run Migrations with php artisan migrate
    • You need to tunnel into vagrant for this with vagrant ssh
  9. Set up storefront enviroment in \storefront
  10. Access dev site through homestead.app

Frameworks and APIs

Samwise is built on Laravel/PHP in the backend with Elasticsearch for running search-as-you-type features, and Vue.js with Vuex and Vue Router to build a Single Page Application on the frontend. It also uses the Stripe and Easypost APIs for E-Commerce services.

Storefront Example

View a launched storefront at Pangolin4x4.com.

Features

Static Page Management

Samwise exposes a static page management interface for maintaining simple static content without diving into the actual codebase. Using the interface, users can write an escaped version of HTML for their pages. Also enhanced by Vue.js components users can write code as simple as <catalog limit="15" /> to generate complex components such as a catalog of all items limited to 15 items per page using the code just provided.

The code editor interface is implamented in a seperate page so that custom css can be added to allow for previewing the page without leaving the interface or saving.

Custom Store Items

Using interfaces generated off of custom-item schemas Samwise eases and abstracts customized item management. This allows for handling any type of item, from T-Shirts to used car parts on the same platform.

Example Schema:

"offer" => [
	"auto" => [
		"Application" => [
			[
				"name" => "sI",
				"type" => "boolean"
			],
			[
				"name" => "other_applications",
				"type" => "string",
				"hint" => "Comma separated list."
			],
			...
		],
		"Wheelbase" => [
			[
				"name" => "base_80",
				"display_name" => "80\"",
				"type" => "boolean"
			]
			...
		]
	]
],
'item' => [
	'auto' => [
		[
			"name" => "part_number",
			"display_name" => "Part Number(s)",
			"type" => "string",
			"hint" => "Comma separated list."
		],
		[
			"name" => "ss_part_number",
			"display_name" => "S/S Part Number(s)",
			"type" => "string",
			"hint" => "Comma separated list."
		]
		...
	]
]

Here we define two schema's, one for the parent offer model, and another for the child item model (Note: offers have-many items). Both define the type of auto. Notice the offer model allows for multiple catagories of additional info because as much information as possible should be relegated to the parent offer model.

The resulting panels are seen below.

Offer-Panel:

Item-Panel:

samwise's People

Contributors

tjtorola avatar

Stargazers

Ahmed A. avatar Robert Anderson avatar

Watchers

 avatar James Cloos avatar Robert Anderson avatar Zakaria Belhadj avatar

samwise's Issues

Customer Info Field Auto-population by Email not always accurate

Trying to auto-populate customer information fields using email when creating a new order. Email in invoice #1727 corresponds to customer information in invoice #1598. In some cases, auto-population does not work even though a repeat customer has placed orders using the same email many times in the past

Random Logout

Constantly being randomly logged out. Happens while performing all tasks. No clear consistency.

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.