Skip to content

mkayander/dStruct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dStruct - LeetCode Problem Visualization Web App

Deployed on Vercel AGPL-3.0 License

Overview

dStruct is a web app designed to assist users in understanding and visualizing LeetCode problems. It provides a built-in code editor where users can write and visualize their solutions.

dStruct Web App

Features

  • Integrated Code Editor: Write and visualize LeetCode solutions within the app using the built-in code editor powered by Monaco Editor.
  • Graphical Visualization: Gain insights into data structures and algorithms through graphical representations, making it easier to understand and debug code.
  • Authentication with NextAuth: Secure user authentication with NextAuth for a personalized experience.
  • Prisma ORM for Database Operations: Utilizes Prisma ORM for efficient database operations, enhancing data handling and storage capabilities.
  • GraphQL Integration: Incorporates GraphQL for efficient query execution and improved API interactions.
  • State Management with Redux Toolkit: Manages application state seamlessly with the help of Redux Toolkit for predictable state changes.
  • Internationalization (i18n) Support: Implements Typesafe i18n for easy translation and localization.
  • Interactive UI with Material-UI and Emotion: Enhances user interface with the help of Material-UI components and Emotion for styling.
  • Code Quality and Testing: Maintains code quality through linting with ESLint, Prettier, and testing with Jest.

Tech Stack

  • Frontend:

    • React
    • Next.js
    • Redux Toolkit
    • Material-UI
    • Emotion
    • Monaco Editor
    • Apollo Client
  • Backend:

    • Node.js
    • Express
    • Prisma
    • GraphQL
    • NextAuth
  • Database:

    • Prisma ORM
    • SQLite (or your preferred database)
  • Other Tools:

    • Typesafe i18n
    • Axios
    • Husky (Git Hooks)
    • Semantic Release
    • Jest Testing Framework

3D Visualization

This project has a "blender" folder which contains the 3D models used for visualization. The 3D models are created using Blender and exported as .glb files. To convert a .glb file to a React component, use the gltffsx package, for example:

pnpm exec gltfjsx blender/logotype/binary_tree.glb -o src/3d-models/BinaryTree.tsx -TtD

Getting Started

  1. Clone the repository:
git clone https://github.com/mkayander/dStruct.git
  1. Install dependencies using pnpm:
pnpm install
  1. Run the development server:
pnpm run dev

Visit http://localhost:3000 to access the application.

Environment Variables

Create a .env file in the root directory based on the .env.example file. Fill in the necessary values for the following variables:

NODE_ENV=development

# Prisma
# DEV
DATABASE_URL='mysql://your_dev_database_url'
DIRECT_DATABASE_URL='mysql://your_dev_direct_database_url'

# PROD
#DATABASE_URL='mysql://your_prod_database_url'
# DIRECT_DATABASE_URL='mysql://your_prod_direct_database_url'

PRISMA_FIELD_ENCRYPTION_KEY=k1.aesgcm256.your_encryption_key

# Next Auth
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=http://localhost:3000

# AWS
ACCESS_KEY=your_aws_access_key
SECRET_KEY=your_aws_secret_key
BUCKET_NAME=your_s3_bucket_name
NEXT_PUBLIC_BUCKET_BASE_URL=your_s3_bucket_base_url

# Verifiable Credentials (VC) REST API
KV_REST_API_READ_ONLY_TOKEN=your_kv_rest_api_read_only_token
KV_REST_API_TOKEN=your_kv_rest_api_token
KV_REST_API_URL=your_kv_rest_api_url
KV_URL=your_kv_url

When adding additional env variables, update the schema in /env/schema.mjs accordingly.

Scripts

  • pnpm build: Build the Next.js application.
  • pnpm start: Start the production server.
  • pnpm test: Run Jest tests.
  • pnpm lint: Lint the code using ESLint.
  • pnpm prisma:generate: Generate Prisma client.
  • pnpm generate-graphql: Generate GraphQL types.

Contribution Guidelines

Contributions to the project are welcome. Please follow the guidelines outlined in the CONTRIBUTING.md file.

License

This project is licensed under the MIT License.

About

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •