├── .env.example ├── .gitignore ├── constants ├── HttpStatusCodes.ts ├── MemCacheKeys.ts ├── PrismaErrorCodes.ts └── UserRoles.ts ├── controllers ├── AuthController.ts ├── BrandInfoController.ts ├── CartController.ts ├── CategoryController.ts ├── FilterController.ts ├── OrderController.ts ├── ProductController.ts ├── QuestionController.ts ├── ReviewController.ts ├── WishlistController.ts └── index.ts ├── db └── prisma.ts ├── helpers ├── Cache.ts ├── Error.ts ├── GenerateSlug.ts ├── SendMail.ts ├── Slug.ts ├── TransformJoiErrors.ts ├── TransformPrismaErrors.ts └── index.ts ├── index.ts ├── middlewares ├── auth.ts ├── checkIfAdmin.ts ├── errorHandler.ts └── index.ts ├── package.json ├── prisma ├── migrations │ ├── 20210805041951_create_user_model │ │ └── migration.sql │ ├── 20210805134007_add_category_schema │ │ └── migration.sql │ ├── 20210805134234_add_category_schema │ │ └── migration.sql │ ├── 20210806110256_add_product_filter_filteroptions_cart_and_some_other_models │ │ └── migration.sql │ ├── 20210806112000_add_product_filter_filteroptions_cart_and_some_other_models │ │ └── migration.sql │ ├── 20210809143319_add_is_visible_to_visitors_boolean_on_filter_schema │ │ └── migration.sql │ ├── 20210809162159_update_is_visible_to_visitors_boolean_on_filter_schema │ │ └── migration.sql │ ├── 20210813084655_rename_parent_category_name_to_category_name_for_filter_schema │ │ └── migration.sql │ ├── 20210821152657_add_slug_field_to_category_model │ │ └── migration.sql │ ├── 20210821163148_add_category_and_subcategory_slugs_for_product_model │ │ └── migration.sql │ ├── 20210822142313_update_base_price_type_to_decimal_from_float_of_productpricing_model │ │ └── migration.sql │ ├── 20211004110847_add_wishlist_model_to_the_schema │ │ └── migration.sql │ ├── 20211007060226_add_payment_intent_id_field_in_order_schema │ │ └── migration.sql │ ├── 20211010065826_add_navigation_menu_modal │ │ └── migration.sql │ ├── 20211012111924_update_brand_info_and_contact_info_schema │ │ └── migration.sql │ ├── 20211012120224_update_phone_number_data_type_from_int_to_string │ │ └── migration.sql │ ├── 20211012161704_remove_contact_info_model_from_the_schema │ │ └── migration.sql │ ├── 20211021070927_make_productdiscount_coupon_code_optional │ │ └── migration.sql │ ├── 20211021091226_remove_price_field_from_product │ │ └── migration.sql │ ├── 20211022134847_add_price_field_to_product_schema │ │ └── migration.sql │ ├── 20211023103237_add_parent_slug_to_category_schema │ │ └── migration.sql │ ├── 20211023140948_remove_unwanted_phonenumber_field_from_product │ │ └── migration.sql │ ├── 20211024090348_remove_total_price_field_from_cart_item_schema │ │ └── migration.sql │ └── migration_lock.toml ├── schema.prisma ├── seed.ts └── seedData │ ├── categories.json │ ├── categories.ts │ ├── filterOptions.json │ ├── filterOptions.ts │ ├── filters.json │ ├── filters.ts │ ├── menuItems.json │ ├── products.json │ ├── products.ts │ ├── seedDummyData.js │ └── users.ts ├── readme.md ├── tsconfig.json ├── types └── express │ └── index.d.ts └── validators ├── CategoryValidator.ts ├── ProductValidator.ts ├── ReviewValidator.ts ├── UserValidator.ts └── index.ts /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/.env.example -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/.gitignore -------------------------------------------------------------------------------- /constants/HttpStatusCodes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/constants/HttpStatusCodes.ts -------------------------------------------------------------------------------- /constants/MemCacheKeys.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/constants/MemCacheKeys.ts -------------------------------------------------------------------------------- /constants/PrismaErrorCodes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/constants/PrismaErrorCodes.ts -------------------------------------------------------------------------------- /constants/UserRoles.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/constants/UserRoles.ts -------------------------------------------------------------------------------- /controllers/AuthController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/AuthController.ts -------------------------------------------------------------------------------- /controllers/BrandInfoController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/BrandInfoController.ts -------------------------------------------------------------------------------- /controllers/CartController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/CartController.ts -------------------------------------------------------------------------------- /controllers/CategoryController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/CategoryController.ts -------------------------------------------------------------------------------- /controllers/FilterController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/FilterController.ts -------------------------------------------------------------------------------- /controllers/OrderController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/OrderController.ts -------------------------------------------------------------------------------- /controllers/ProductController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/ProductController.ts -------------------------------------------------------------------------------- /controllers/QuestionController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/QuestionController.ts -------------------------------------------------------------------------------- /controllers/ReviewController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/ReviewController.ts -------------------------------------------------------------------------------- /controllers/WishlistController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/WishlistController.ts -------------------------------------------------------------------------------- /controllers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/controllers/index.ts -------------------------------------------------------------------------------- /db/prisma.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/db/prisma.ts -------------------------------------------------------------------------------- /helpers/Cache.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/Cache.ts -------------------------------------------------------------------------------- /helpers/Error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/Error.ts -------------------------------------------------------------------------------- /helpers/GenerateSlug.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/GenerateSlug.ts -------------------------------------------------------------------------------- /helpers/SendMail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/SendMail.ts -------------------------------------------------------------------------------- /helpers/Slug.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/Slug.ts -------------------------------------------------------------------------------- /helpers/TransformJoiErrors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/TransformJoiErrors.ts -------------------------------------------------------------------------------- /helpers/TransformPrismaErrors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/TransformPrismaErrors.ts -------------------------------------------------------------------------------- /helpers/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/helpers/index.ts -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/index.ts -------------------------------------------------------------------------------- /middlewares/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/middlewares/auth.ts -------------------------------------------------------------------------------- /middlewares/checkIfAdmin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/middlewares/checkIfAdmin.ts -------------------------------------------------------------------------------- /middlewares/errorHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/middlewares/errorHandler.ts -------------------------------------------------------------------------------- /middlewares/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/middlewares/index.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/package.json -------------------------------------------------------------------------------- /prisma/migrations/20210805041951_create_user_model/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210805041951_create_user_model/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210805134007_add_category_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210805134007_add_category_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210805134234_add_category_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210805134234_add_category_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210806110256_add_product_filter_filteroptions_cart_and_some_other_models/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210806110256_add_product_filter_filteroptions_cart_and_some_other_models/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210806112000_add_product_filter_filteroptions_cart_and_some_other_models/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210806112000_add_product_filter_filteroptions_cart_and_some_other_models/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210809143319_add_is_visible_to_visitors_boolean_on_filter_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210809143319_add_is_visible_to_visitors_boolean_on_filter_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210809162159_update_is_visible_to_visitors_boolean_on_filter_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210809162159_update_is_visible_to_visitors_boolean_on_filter_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210813084655_rename_parent_category_name_to_category_name_for_filter_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210813084655_rename_parent_category_name_to_category_name_for_filter_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210821152657_add_slug_field_to_category_model/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210821152657_add_slug_field_to_category_model/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210821163148_add_category_and_subcategory_slugs_for_product_model/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210821163148_add_category_and_subcategory_slugs_for_product_model/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20210822142313_update_base_price_type_to_decimal_from_float_of_productpricing_model/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20210822142313_update_base_price_type_to_decimal_from_float_of_productpricing_model/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211004110847_add_wishlist_model_to_the_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211004110847_add_wishlist_model_to_the_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211007060226_add_payment_intent_id_field_in_order_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211007060226_add_payment_intent_id_field_in_order_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211010065826_add_navigation_menu_modal/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211010065826_add_navigation_menu_modal/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211012111924_update_brand_info_and_contact_info_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211012111924_update_brand_info_and_contact_info_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211012120224_update_phone_number_data_type_from_int_to_string/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211012120224_update_phone_number_data_type_from_int_to_string/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211012161704_remove_contact_info_model_from_the_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211012161704_remove_contact_info_model_from_the_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211021070927_make_productdiscount_coupon_code_optional/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211021070927_make_productdiscount_coupon_code_optional/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211021091226_remove_price_field_from_product/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211021091226_remove_price_field_from_product/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211022134847_add_price_field_to_product_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211022134847_add_price_field_to_product_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211023103237_add_parent_slug_to_category_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211023103237_add_parent_slug_to_category_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211023140948_remove_unwanted_phonenumber_field_from_product/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211023140948_remove_unwanted_phonenumber_field_from_product/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20211024090348_remove_total_price_field_from_cart_item_schema/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/20211024090348_remove_total_price_field_from_cart_item_schema/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/schema.prisma -------------------------------------------------------------------------------- /prisma/seed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seed.ts -------------------------------------------------------------------------------- /prisma/seedData/categories.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/categories.json -------------------------------------------------------------------------------- /prisma/seedData/categories.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/categories.ts -------------------------------------------------------------------------------- /prisma/seedData/filterOptions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/filterOptions.json -------------------------------------------------------------------------------- /prisma/seedData/filterOptions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/filterOptions.ts -------------------------------------------------------------------------------- /prisma/seedData/filters.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/filters.json -------------------------------------------------------------------------------- /prisma/seedData/filters.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/filters.ts -------------------------------------------------------------------------------- /prisma/seedData/menuItems.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/menuItems.json -------------------------------------------------------------------------------- /prisma/seedData/products.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/products.json -------------------------------------------------------------------------------- /prisma/seedData/products.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/products.ts -------------------------------------------------------------------------------- /prisma/seedData/seedDummyData.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/seedDummyData.js -------------------------------------------------------------------------------- /prisma/seedData/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/prisma/seedData/users.ts -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/readme.md -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/tsconfig.json -------------------------------------------------------------------------------- /types/express/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/types/express/index.d.ts -------------------------------------------------------------------------------- /validators/CategoryValidator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/validators/CategoryValidator.ts -------------------------------------------------------------------------------- /validators/ProductValidator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/validators/ProductValidator.ts -------------------------------------------------------------------------------- /validators/ReviewValidator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/validators/ReviewValidator.ts -------------------------------------------------------------------------------- /validators/UserValidator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/validators/UserValidator.ts -------------------------------------------------------------------------------- /validators/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ManishKarki1997/E-Commerce-Server/HEAD/validators/index.ts --------------------------------------------------------------------------------