Skip to content

The Next-Gen online food shopping app!

Notifications You must be signed in to change notification settings

tommaso-merlini/Dintorni

Repository files navigation


DINTORNI

◦ Navigate with Ease, Explore with Dintorni!

◦ Developed with the software and tools below.

Firebase JavaScript GraphQL Redis YAML Jest Nodemon Progress ESLint MongoDB SemVer Lodash tsnode TypeScript Docker Ajv Buffer Socket.io Stripe JSON Express

GitHub license git-last-commit GitHub commit activity GitHub top language

Table of Contents


Overview

Dintorni" is the next-gen online food shopping app.


Repository Structure

└── Dintorni/
    ├── .env_sample
    ├── Dockerfile
    ├── codegen.yml
    ├── docker-compose.yml
    ├── nginx/
    │   └── nginx.conf
    ├── package.json
    ├── redis/
    │   └── redis.conf
    ├── src/
    │   ├── @types/
    │   │   ├── bluebird.d.ts
    │   │   ├── express-rate-limit.d.ts
    │   │   ├── graphql-depth-limit.d.ts
    │   │   ├── graphql-fields.d.ts
    │   │   ├── graphql-kafka-subscriptions.d.ts
    │   │   ├── ioredis.d.ts
    │   │   ├── node-cron.d.ts
    │   │   └── redis.d.ts
    │   ├── GraphQL/
    │   │   ├── Functions/
    │   │   ├── MongoFilter/
    │   │   ├── Tests/
    │   │   ├── Types/
    │   │   ├── resolvers.ts
    │   │   └── typeDefs.ts
    │   ├── JWT/
    │   │   ├── AuthenticateToken.test.js
    │   │   └── AuthenticateToken.ts
    │   ├── Redis/
    │   │   ├── redis.ts
    │   │   ├── useDel/
    │   │   ├── useGet/
    │   │   └── useSet/
    │   ├── Schema/
    │   │   ├── Cart/
    │   │   ├── Company/
    │   │   ├── Likes/
    │   │   ├── Product/
    │   │   ├── Stripe/
    │   │   └── User/
    │   ├── Servers/
    │   │   ├── authServer.js
    │   │   └── server.ts
    │   ├── firebase/
    │   │   ├── checkAuth.js
    │   │   ├── fbServiceAccountKey.ts
    │   │   └── firebase.ts
    │   └── helpers/
    │       ├── canSee.ts
    │       ├── initMongoDB.ts
    │       └── initPubSub.ts
    ├── tsconfig.json
    └── yarn.lock

Modules

Root
File Summary
yarn.lock This code base represents a full stack application with GraphQL utilized for querying data. It includes type definitions and resolver functions for GraphQL, JWT for authentication, Redis for caching, Docker for creating a containerized development environment, and Nginx for reverse proxy setup. Custom types for external libraries are defined in'@types'. The'src' directory contains business logic, database schema, server initialization files, and Firebase for additional user authentication.
.env_sample The provided code represents a scalable application structure, including primary configurations and business logic. Core functionalities include interacting with MongoDB, Redis, and handling GraphQL queries through dedicated configurations and resolvers. It also manages user authentication using JWT, initiates Firebase services, and manages Stripe transactions. Application server-related and environment-specific settings are maintained in the '.env_sample' file. Docker support and Nginx configurations are included to control the deployment environment.
docker-compose.yml The code defines a Docker Compose configuration for a JavaScript application, with services for Redis and Nginx proxy. Redis, an in-memory data structure store, is for caching and the Nginx serving as a web-proxy. Each service is configured with specific Docker images and mounting volumes for configuration files. The node application service builds an environment from the current directory, linking it with Redis, and setting up environment variables from a.env file.
tsconfig.json The code represents the configuration for a TypeScript project. The project targets ES6 and uses CommonJS module resolution. It also enables importing.json files, allows JavaScript files being part of the program, and supports CommonJS interoperability. The output files are directed into the "./dist" folder. It enforces consistent casing in file names and skips type checking for all.d.ts files.
codegen.yml The given directory outline and'codegen.yml' file indicate a GraphQL-based project with Redis and Docker support. It's set to use MongoDB, Firebase authentication, JWT for token authentication, and Nginx as its web server. This project automates typescript type generation for GraphQL resolvers using'codegen.yml'. The'src' directory contains various functional aspects like GraphQL resolvers, schemas, servers, token authentication code and helper functions. It also supports rate-limiting and depth-limiting for GraphQL queries, and cron jobs.
package.json The code represents the server-side directory structure and package manifest for a Node.js application. It supports GraphQL API with predefined schema, resolvers, and types; Firebase authentication; Redis database configurations; rate limiting; schedulers and subscription services. It includes Docker support for containerization, Nginx for web serving, and a JWT authentication service. Testing, code generation and server automation scripts are built into package.json. It manages dependencies for packages like Apollo Server, Firebase, Mongoose, ioredis, Express, and others.
Dockerfile HTTPStatus Exception: 429
Redis
File Summary
redis.conf HTTPStatus Exception: 429
redis.ts HTTPStatus Exception: 429
Nginx
File Summary
nginx.conf HTTPStatus Exception: 429
@types
File Summary
node-cron.d.ts HTTPStatus Exception: 429
graphql-fields.d.ts HTTPStatus Exception: 429
express-rate-limit.d.ts HTTPStatus Exception: 429
graphql-depth-limit.d.ts HTTPStatus Exception: 429
bluebird.d.ts The given code structure reflects a project utilizing Docker, GraphQL, JWTs, Redis, and various helper tools. Docker-related files facilitate containerization. JWT and GraphQL directories manage authentication and data querying respectively. The Redis directory handles caching, emphasizing data manipulation. Helpers initiate MongoDB and a PubSub service. The specific source file (src/@types/bluebird.d.ts) is typescript declaration file for the Bluebird promise library.
ioredis.d.ts HTTPStatus Exception: 429
redis.d.ts HTTPStatus Exception: 429
graphql-kafka-subscriptions.d.ts HTTPStatus Exception: 429
Servers
File Summary
authServer.js HTTPStatus Exception: 429
server.ts HTTPStatus Exception: 429
Useget
File Summary
useGet.ts HTTPStatus Exception: 429
Useset
File Summary
useSet.ts HTTPStatus Exception: 429
Usedel
File Summary
useDel.ts HTTPStatus Exception: 429
Helpers
File Summary
canSee.ts HTTPStatus Exception: 429
initMongoDB.ts HTTPStatus Exception: 429
initPubSub.ts HTTPStatus Exception: 429
Company
File Summary
Company.model.ts HTTPStatus Exception: 429
shopByFirebaseID.ts HTTPStatus Exception: 429
closeShops.ts HTTPStatus Exception: 429
shop.ts HTTPStatus Exception: 429
favouriteShops.ts HTTPStatus Exception: 429
shops.ts HTTPStatus Exception: 429
shopsByFirebaseCompanyID.ts HTTPStatus Exception: 429
productsShop.ts HTTPStatus Exception: 429
updateShop.ts HTTPStatus Exception: 429
disactivateShop.ts HTTPStatus Exception: 429
activateShop.ts HTTPStatus Exception: 429
createShop.ts HTTPStatus Exception: 429
Shop
File Summary
Shop.model.ts HTTPStatus Exception: 429
Likes
File Summary
ProductLike.module.js HTTPStatus Exception: 429
CompanyLike.module.js HTTPStatus Exception: 429
Cart
File Summary
Cart.model.ts HTTPStatus Exception: 429
addToCart.ts HTTPStatus Exception: 429
Product
File Summary
Product.model.ts HTTPStatus Exception: 429
closeProductsTitle.ts HTTPStatus Exception: 429
product.ts HTTPStatus Exception: 429
products.ts HTTPStatus Exception: 429
shopProduct.ts HTTPStatus Exception: 429
deleteProduct.ts HTTPStatus Exception: 429
createProduct.ts HTTPStatus Exception: 429
changeProductStatus.ts HTTPStatus Exception: 429
updateProduct.ts HTTPStatus Exception: 429
User
File Summary
User.model.ts HTTPStatus Exception: 429
user.ts HTTPStatus Exception: 429
FCM.ts HTTPStatus Exception: 429
updateUser.ts HTTPStatus Exception: 429
CreateUser.ts HTTPStatus Exception: 429
Stripe
File Summary
PaymentIntent.model.ts HTTPStatus Exception: 429
account.ts HTTPStatus Exception: 429
paymentIntent.ts HTTPStatus Exception: 429
stripePayment.ts HTTPStatus Exception: 429
createStripeAccount.ts HTTPStatus Exception: 429
createOrder.ts HTTPStatus Exception: 429
accountLink.ts HTTPStatus Exception: 429
Firebase
File Summary
fbServiceAccountKey.ts HTTPStatus Exception: 429
firebase.ts HTTPStatus Exception: 429
checkAuth.js HTTPStatus Exception: 429
Graphql
File Summary
typeDefs.ts HTTPStatus Exception: 429
resolvers.ts HTTPStatus Exception: 429
Mongofilter
File Summary
MongoFilter.ts HTTPStatus Exception: 429
Types
File Summary
types.ts HTTPStatus Exception: 429
Tests
File Summary
resolvers.test.js HTTPStatus Exception: 429
init.js HTTPStatus Exception: 429
Actions
File Summary
like.ts HTTPStatus Exception: 429
Jwt
File Summary
AuthenticateToken.test.js HTTPStatus Exception: 429
AuthenticateToken.ts HTTPStatus Exception: 429

Getting Started

Dependencies

Please ensure you have the following dependencies installed on your system:

- ℹ️ Dependency 1

- ℹ️ Dependency 2

- ℹ️ ...

Installation

  1. Clone the Dintorni repository:
git clone https://github.com/tommaso-merlini/Dintorni.git
  1. Change to the project directory:
cd Dintorni
  1. Install the dependencies:
npm install

Running Dintorni

npm run build && node dist/main.js

Tests

npm test

Project Roadmap

  • ℹ️ Task 1: Implement X
  • ℹ️ Task 2: Implement Y
  • ℹ️ ...

Contributing

Contributions are welcome! Here are several ways you can contribute:

Contributing Guidelines

Click to expand
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a Git client.
    git clone <your-forked-repo-url>
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear and concise message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.

Once your PR is reviewed and approved, it will be merged into the main branch.


License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


Acknowledgments

  • List any resources, contributors, inspiration, etc. here.

Return


About

The Next-Gen online food shopping app!

Resources

Stars

Watchers

Forks

Packages

No packages published