AngularSpree Plug and play frontend application for SPREE E-Commerce API built with β€οΈ using Angular2, Redux, Observables & ImmutableJs.
π Progressive Web App: Lighthouse score of 95/100.
AngularSpree is an open source Angular(2.x+) front-end application for Spree Commerce. It's free and always will be.
Bootstrap 4 Compatible
Go ahead use it the way you want to or let us know at hello@aviabird.com
if you need any help with this project.
We have been working with Spree for very long time, making products for a lot of clients. There was one pattern we noticed in what the clients always asked for. They were comfortable using spree for the backend API but not for the front-end. These requests have been very consistent with so many awesome front-end framework around.
When Angular team realeased the beta version in March last year we knew that angular was going to be a big player soon. We decided to give it a try. Hence, AngularSpree was born as a front-end framework for the most awesome backend api for E-Commerce out there.
π₯π₯π₯π₯π₯π₯π₯π₯π₯
If you are looking to build a project similar to this one with all the ready-made setup, then I highly encourage you to look at this starter seed project by Aviabird Team.
AngularSeed is a Plug and play Seed project built with β€οΈ using Angular 5, Redux/ngrx-store 4, Observables & ImmutableJs. We are commited to keeping this project upto date with all the latest versions of all the libs and components.
π₯π₯π₯π₯π₯π₯π₯π₯π₯
Currently, this is a fairly basic vesion of the application. We are calling it a pre-alpha release.
- Add/Remove products to cart.
- Select/Clear filters based on category.
- Support for product variants.
- Cart checkout feature.
- Cash on delivery option.
- Authentication (Login/Signup)
- Angular Universal support for better SEO and much more.
- Payment options credit/debit cards.
- Multilanguage Support i18n.
- More sorting features(new/popular, Discount, Price[low,high]).
- Support for further types of products(size, pattern, collar, etc).
- Support for further options in types eg. size(32, 34, 36) etc. etc.
- Ability to add more than one addresses.
- and many more....
There is a long way to go... keep an eye on this project here on github.
Based on this application and other applications we have built in past we are working on a full blown Angular 2 fundamentals course on udemy. Throughout this course you'll learn how to build yatrum from ground up.
- Architecture, setup, source files
- TypeScript basics
- Getting started with latest angular
- Template fundamentals
- Rendering flows
- Component Architecture and Modules
- Services, Http and Observables
- Template Forms, Inputs and Validation
- Reactive Forms and more magic
- Routing
We've built AngularSpree keeping scaling in mind leveraging the best technologies out there.
As of now, the application has 7 major modules, products
, core
, home
, user
, checkout
, auth
, shared
.
We are working on documentation and we can share that once we are looking at a more stable release.
- Exclusively using @ngrx libraries(store, effects, actions), showcasing common patterns and best practices.
- Fully Observable approach using RxJS 5.0.1(latest beta).
- Uses @ngrx/store to manage the state of the app and to cache requests made to the Backend API,
- @angular/router to manage navigation between routes,
- @ngrx/effects to isolate side effects.
- @ngrx/actions to define the actions on the frontend.
- Following Container/Presentation component approach.
- Lazy loading of modules(for modules which are not immediately required for first painting the DOM).
- ImmutableJs to create and safeguard objects againts mutability.
- Project is divided into modules which are more or less independant of each other except core module.
Current version of Angular is latest release 4.0.0.
Current version of Angular-cli is 1.0.0.
We try to make sure that we keep the repository upto date with the angular release every weekend.
On this page user can filter products as per category. Change layout of the products(cozy, comfortable) etc.
Cart page displays all the line items or items in the cart which the user has added while browsing the website.
Display's the detailed product information of a particular product.
Package Manager Yarn
We are using Yarn as a package manager in this project though you can also use npm
if you like to.
**Start the API for this project to work successfully.
We have a very thin and custom repo which is the backend for this project. Clone it and run the server. We have updated the readme on how to setup the backend API project.
Where to start
There are many different ways to contribute to AngularSpree's development, just find the one that best fits with your skills. Examples of contributions we would love to receive include:
- Code patches
- Documentation improvements
- Translations(yet to come)
- Bug reports
- Patch reviews
- UI enhancements
Big features are also welcome but if you want to see your contributions included in AngularSpree's codebase we strongly recommend you start by initiating a chat on our slack channel.
Run npm start-mock
for a dev server with 'mock' api. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files and will fetch data from mock api;
Run npm start
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run npm run build--prod
to build in production with service worker pre-cache and then npm run static-serve
to serve.
Run npm run build
to build the project. The build artifacts will be stored in the dist/
directory. Use the npm run build--prod
for a production build.
We are Aviabird Technologies.
We love to create awesome Web & Mobile products.
We are very proud of our work.
We love technologies like Golang, Elixir, Scala, Ruby, Javascript, Typescript, Swift, Java.
We love some frameworks too:-
- Ruby On Rails
- Phoenix/Elixir framework.
- Spring framework.
- AngularJs (1.x+ & 2.x+)
- ReactJs
- BackboneJs
If you want to hire us for a project, please contact us on hello@aviabird.com
.