Welcome
Atlas is an E-Commerce Backend (RESTful) API.
It was built with the Yoonic E-Commerce Storefront application in mind.
Why write plugins when you can build your own e-commerce platform?
API Resources
After deploying and running Atlas locally, you can access the Swagger API Documentation by browsing to localhost:8000/docs
.
Overall, Atlas provides services for:
- User Accounts
- Contents
- Homepage Banners
- Articles
- Content common to all Product Pages
- ... <-- Whatever you wish :)
- Products
- Collections
- Products
- Contents
- Customers
- ... <-- Your own segmentation engine!
- Carts
- Checkouts
- Orders
Batteries Included
- Mailgun for transactional emails
- Switch Payments for payments
Storefront has a few more tricks up its sleeve ;)
Requirements
- Node.js + NPM (v4.x LTS)
- Rethinkdb
- Yoonic Storefront (optional)
Installation
In order to setup, run and start hacking the app locally you just have to:
- Clone this repository
npm install
- Start rethinkdb server and, in a browser, navigate to
http://localhost:8080/#tables
(RethinkDB admin) - Create a database named
atlas
- In that database, create the following tables:
Carts
Checkouts
Collections
Contents
Orders
Products
Users
- Create a JWT secret key (e.g. using
openssl rand -base64 32
) and either:
- Setup the env variable
JWT_KEY
- Add it to the configuration file at
config/development
inapp.jwtKey
- In the directory of the Atlas clone, run
npm run dev
At this point, you should be have your local deploy of Atlas running on http://localhost:8000
and can point your local deploy of Storefront to it.
Admin Account
In order to access Storefront's Admin and perform certain API calls, an Administrator account is required.
- Create an account (either via the API or Storefront)
- In a browser, navigate to
http://localhost:8080/#dataexplorer
- Run the following query
r.db('atlas').table('Users').filter({email: '{YOUR_USER_EMAIL}'}).update({status: 'active', scope: ['admin']});
(don't forget to replace{YOUR_USER_EMAIL}
with the email address of the account you created)