Code Monkey home page Code Monkey logo

frontend's Introduction

No Clocks Frontend

This repository represents the tech stack and architecture for No Clocks frontend development.

Contents

Introduction

This repository serves as a foundation for all frontend development at No Clocks, LLC.

Tech Stack

  • Remix is the Web Framework of choice for No Clocks. Remix is a full-stack web framework that lets you build web apps with React, server-rendered pages, and a data-fetching layer all in one.
  • Static Types are enforced with TypeScript.
  • An excellent, customizable component library with Radix UI, a collection of low-level UI components and utility functions for React.
  • shadcn/ui is the component library of choice for No Clocks. It is a collection of accessible, reusable, and composable React components.
  • Vite is the build tool of choice for No Clocks. It is a fast, opinionated frontend build tool that provides a lightning-fast development experience.
  • Storybook is used for component development and documentation.
  • Error Monitoring is handled by Rollbar.
  • Docker (and Docker Compose) is used for local development, containerization, and deployment.
  • Fly.io is used for hosting and deployment.
  • GitHub Actions used for CI/CD (testing, linting, and deployment).
  • ESLint and Prettier are used for code linting and formatting.
  • End-to-end testing is handled by Playwright.
  • Unit testing is handled by Vitest and the React Testing Library.
  • PNPM is used for package management.

Future additions:

  • Database ORM is handled by Prisma.
  • Runtime schema validation is handled by Zod
  • Jest is used for testing.
  • E-commerce functionality is handled by Stripe.

Future Considerations:

Architecture

The frontend architecture is based on the Remix framework. Remix is a full-stack web framework that lets you build web apps with React, server-rendered pages, and a data-fetching layer all in one.

The frontend is a monolithic application that is split into the following directories and files:

  • src/ contains the main source code for the application.
    • app/ contains the main application code.
      • components/ contains the shared components.
      • routes/ contains the routes for the application.
      • styles/ contains the global styles for the application.
      • utils/ contains shared utility functions.
      • entry.client.tsx is the entry point for the client-side code.
      • entry.server.tsx is the entry point for the server-side code.
      • root.tsx is the root component for the application.
    • public/ contains the public assets for the application.
      • favicons/ contains the favicons for the application.
      • img/ contains the images for the application.
      • robots.txt is the robots.txt file for the application.
      • favicon.ico is the favicon for the application.
      • site.webmanifest is the web manifest for the application.
    • types/ contains shared types.
    • hooks/ contains shared hooks.
    • lib/ contains shared utility functions.
    • stories/ contains the stories for the components.
  • tests/ contains the tests for the application.
    • e2e/ contains the end-to-end tests for the application.
    • fixtures/ contains the fixtures for the tests.
    • mocks/ contains the mocks for the tests.
    • setup/ contains the setup for the tests.
    • integration/ contains the integration tests for the application.
    • unit/ contains the unit tests for the application.
  • docs/ contains the documentation for the application, written in Markdown.
  • assets/ contains static, repo-wide assets.
  • examples/ contains example code for the application.
  • scripts/ contains the scripts for the application.
  • config/ contains the configuration for the application.
  • .storybook/ contains the Storybook configuration for the application.
  • .github/ contains the GitHub Actions configuration for the application.
  • .vscode/ contains the Visual Studio Code configuration for the application.

Development

To get started with development, clone the repository and run the following commands:

pnpm install
pnpm dev

This will start the development server at http://localhost:3000.

Deployment

The application is deployed using Fly.io. The deployment process is handled by GitHub Actions.

Contributing

Please read the CONTRIBUTING.md file for more information on how to contribute to this repository.

frontend's People

Contributors

jimbrig avatar phoward38 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

frontend's Issues

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.