Giter Site home page Giter Site logo

dimd13 / symfony-ddd-wishlist Goto Github PK

View Code? Open in Web Editor NEW

This project forked from franzose/symfony-ddd-wishlist

0.0 1.0 0.0 208 KB

Wishlist, a sample application on Symfony 3 and Vue.js built with DDD in mind

License: MIT License

ApacheConf 2.21% PHP 86.47% JavaScript 7.50% CSS 2.89% HTML 0.93%

symfony-ddd-wishlist's Introduction

На русском

Wishlist

I'm still working on the project, so some things can be unimplemented yet.

This repository serves as an implementation of DDD, domain driven design, with usage of Symfony 3, PostgreSQL, and Redis as a backend and Vue.js/Sass as a frontend. The project is heavily inspired by DDD Cargo Sample in PHP.

The basis for the project is a fairly simple domain, a wish list. Each wish can have its own price, daily fee and a fund which is implemented as a list of deposits to the wish. Wish can be fulfilled and is fulfilled as soon as its fund has enough money. Mistaken deposits can be removed or transfered to another wish. Any wish can have surplus funds, so they can also be transfered to other wishes.

Installation

Clone the repository and run the following commands to install all the dependencies and build frontend scripts and styles:

cd /path/to/webroot
git clone https://github.com/franzose/symfony-ddd-wishlist.git
cd symfony-ddd-wishlist
composer self-update
composer install
npm install
./node_modules/.bin/encore dev

PostgreSQL, Redis, and PHP dev server

To simplify backend setup, the project uses a couple of Docker images (so you need to install Docker too) that you'll find in docker-compose.yml.dist file. Run the following commands to start PostgreSQL and Redis, and also fill the database with some data:

cp ./app/config/parameters.yml.dist ./app/config/parameters.yml
cp ./app/config/parameters_permanent.yml.dist ./app/config/parameters_permanent.yml
cp ./docker-compose.yml.dist ./docker-compose.yml
docker-compose up -d
php bin/console doctrine:fixtures:load --fixtures=/path/to/src/Infrastructure/Persistence/Doctrine/Fixture/LoadWishesData.php
php bin/console server:start

Project structure

TODO: write about project structure

Support

If you have any problems using the application, please open a Github issue. The same applies to any questions or feature requests.

Contributions

Any contribution is appreciated. This application serves as an example implementation of the domain driven design. I'd be very glad of any kind of shares of this repository being it a tweet, a post, a link, or whatever.

Tests

The application is covered by unit and functional tests. Functional tests use SQLite database. Before running tests, please copy PHPUnit's configuration file:

cp ./phpunit.xml.dist ./phpunit.xml

Then use the following command to run tests:

./vendor/bin/phpunit

symfony-ddd-wishlist's People

Contributors

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