├── .gitignore ├── LICENSE ├── README.md ├── doc ├── DDD_architecture.jpg ├── Hapijs_Clean_Architecture.svg ├── Uncle_Bob_Clean_Architecture.jpg └── adr │ └── 0001-add-service-locator.md ├── docker-compose.yml ├── index.js ├── lib ├── application │ ├── security │ │ └── AccessTokenManager.js │ └── use_cases │ │ ├── CreateUser.js │ │ ├── DeleteUser.js │ │ ├── GetAccessToken.js │ │ ├── GetUser.js │ │ ├── ListUsers.js │ │ ├── SayHello.js │ │ └── VerifyAccessToken.js ├── domain │ ├── User.js │ └── UserRepository.js ├── infrastructure │ ├── config │ │ ├── bootstrap.js │ │ ├── constants.js │ │ ├── environment.js │ │ └── service-locator.js │ ├── orm │ │ ├── mongoose │ │ │ ├── mongoose.js │ │ │ └── schemas │ │ │ │ └── User.js │ │ └── sequelize │ │ │ ├── models │ │ │ └── User.js │ │ │ └── sequelize.js │ ├── repositories │ │ ├── UserRepositoryInMemory.js │ │ ├── UserRepositoryMongo.js │ │ └── UserRepositorySQLite.js │ ├── security │ │ └── JwtAccessTokenManager.js │ └── webserver │ │ ├── oauth │ │ ├── index.js │ │ └── scheme.js │ │ └── server.js └── interfaces │ ├── controllers │ ├── AuthorizationController.js │ ├── HelloController.js │ └── UsersController.js │ ├── routes │ ├── hello.js │ ├── private.js │ └── users.js │ └── serializers │ └── UserSerializer.js ├── package.json └── test ├── application └── use_cases │ ├── CreateUser.test.js │ ├── DeleteUser.test.js │ ├── GetAccessToken.test.js │ ├── GetUser.test.js │ ├── ListUsers.test.js │ ├── SayHello.test.js │ └── VerifyAccessToken.test.js └── interfaces └── controllers └── HelloController.test.js /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/README.md -------------------------------------------------------------------------------- /doc/DDD_architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/doc/DDD_architecture.jpg -------------------------------------------------------------------------------- /doc/Hapijs_Clean_Architecture.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/doc/Hapijs_Clean_Architecture.svg -------------------------------------------------------------------------------- /doc/Uncle_Bob_Clean_Architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/doc/Uncle_Bob_Clean_Architecture.jpg -------------------------------------------------------------------------------- /doc/adr/0001-add-service-locator.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/doc/adr/0001-add-service-locator.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/index.js -------------------------------------------------------------------------------- /lib/application/security/AccessTokenManager.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/security/AccessTokenManager.js -------------------------------------------------------------------------------- /lib/application/use_cases/CreateUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/CreateUser.js -------------------------------------------------------------------------------- /lib/application/use_cases/DeleteUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/DeleteUser.js -------------------------------------------------------------------------------- /lib/application/use_cases/GetAccessToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/GetAccessToken.js -------------------------------------------------------------------------------- /lib/application/use_cases/GetUser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/GetUser.js -------------------------------------------------------------------------------- /lib/application/use_cases/ListUsers.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/ListUsers.js -------------------------------------------------------------------------------- /lib/application/use_cases/SayHello.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/SayHello.js -------------------------------------------------------------------------------- /lib/application/use_cases/VerifyAccessToken.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/application/use_cases/VerifyAccessToken.js -------------------------------------------------------------------------------- /lib/domain/User.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/domain/User.js -------------------------------------------------------------------------------- /lib/domain/UserRepository.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/domain/UserRepository.js -------------------------------------------------------------------------------- /lib/infrastructure/config/bootstrap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/config/bootstrap.js -------------------------------------------------------------------------------- /lib/infrastructure/config/constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/config/constants.js -------------------------------------------------------------------------------- /lib/infrastructure/config/environment.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/config/environment.js -------------------------------------------------------------------------------- /lib/infrastructure/config/service-locator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/config/service-locator.js -------------------------------------------------------------------------------- /lib/infrastructure/orm/mongoose/mongoose.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/orm/mongoose/mongoose.js -------------------------------------------------------------------------------- /lib/infrastructure/orm/mongoose/schemas/User.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/orm/mongoose/schemas/User.js -------------------------------------------------------------------------------- /lib/infrastructure/orm/sequelize/models/User.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/orm/sequelize/models/User.js -------------------------------------------------------------------------------- /lib/infrastructure/orm/sequelize/sequelize.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/orm/sequelize/sequelize.js -------------------------------------------------------------------------------- /lib/infrastructure/repositories/UserRepositoryInMemory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/repositories/UserRepositoryInMemory.js -------------------------------------------------------------------------------- /lib/infrastructure/repositories/UserRepositoryMongo.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/repositories/UserRepositoryMongo.js -------------------------------------------------------------------------------- /lib/infrastructure/repositories/UserRepositorySQLite.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/repositories/UserRepositorySQLite.js -------------------------------------------------------------------------------- /lib/infrastructure/security/JwtAccessTokenManager.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/security/JwtAccessTokenManager.js -------------------------------------------------------------------------------- /lib/infrastructure/webserver/oauth/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/webserver/oauth/index.js -------------------------------------------------------------------------------- /lib/infrastructure/webserver/oauth/scheme.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/webserver/oauth/scheme.js -------------------------------------------------------------------------------- /lib/infrastructure/webserver/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/infrastructure/webserver/server.js -------------------------------------------------------------------------------- /lib/interfaces/controllers/AuthorizationController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/controllers/AuthorizationController.js -------------------------------------------------------------------------------- /lib/interfaces/controllers/HelloController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/controllers/HelloController.js -------------------------------------------------------------------------------- /lib/interfaces/controllers/UsersController.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/controllers/UsersController.js -------------------------------------------------------------------------------- /lib/interfaces/routes/hello.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/routes/hello.js -------------------------------------------------------------------------------- /lib/interfaces/routes/private.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/routes/private.js -------------------------------------------------------------------------------- /lib/interfaces/routes/users.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/routes/users.js -------------------------------------------------------------------------------- /lib/interfaces/serializers/UserSerializer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/lib/interfaces/serializers/UserSerializer.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/package.json -------------------------------------------------------------------------------- /test/application/use_cases/CreateUser.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/CreateUser.test.js -------------------------------------------------------------------------------- /test/application/use_cases/DeleteUser.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/DeleteUser.test.js -------------------------------------------------------------------------------- /test/application/use_cases/GetAccessToken.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/GetAccessToken.test.js -------------------------------------------------------------------------------- /test/application/use_cases/GetUser.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/GetUser.test.js -------------------------------------------------------------------------------- /test/application/use_cases/ListUsers.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/ListUsers.test.js -------------------------------------------------------------------------------- /test/application/use_cases/SayHello.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/SayHello.test.js -------------------------------------------------------------------------------- /test/application/use_cases/VerifyAccessToken.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/application/use_cases/VerifyAccessToken.test.js -------------------------------------------------------------------------------- /test/interfaces/controllers/HelloController.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jbuget/nodejs-clean-architecture-app/HEAD/test/interfaces/controllers/HelloController.test.js --------------------------------------------------------------------------------