From cfd101d74205015217163571563c77d79e036f26 Mon Sep 17 00:00:00 2001 From: "Jason R. Stevens, CFA" Date: Wed, 16 Feb 2022 15:48:11 -0600 Subject: [PATCH 1/4] :notebook: :art: prep for OSS release --- README.md | 81 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index e0b1241..33267ea 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,35 @@ +

+ Light +

+ # [Phund](https://example.phund.xyz) A simple **S**ingle **P**age **A**pp for getting funded. Built on -[Next.js](https://nextjs.org), styled with [Tailwindcss](https://tailwindcss.com), and deployed on [Vercel](https://vercel.com). +[Next.js](https://nextjs.org), styled with [Tailwindcss](https://tailwindcss.com), and deployed on [Vercel](https://vercel.com). Development and support provided by [Tincre](https://tincre.com). -## Features +## Features -- Add your SAFE note, a business email, and [SendGrid](https://sendgrid.com) API key, get on-demand -email delivery of your note for authenticated users plus a notification to your business email. +- Add your SAFE note, a business email, and [SendGrid](https://sendgrid.com) API key, get on-demand + email delivery of your note for authenticated users plus a notification to your business email. - Simple content changes maximize efficient customization for your business and your capital raise. -- [Tailwindcss](https://tailwindcss.com) styling to beautifully modify your css right next to your -logic. +- [Tailwindcss](https://tailwindcss.com) styling to beautifully modify your css right next to your + logic. - [Next.js](https://nextjs.org) to optimize your engineering on the web. -- [next-auth](https://next-auth.js.org) for build-in security over your walled garden + SEC requirements for **not** marketing private placements (SAFE) to non-accredited investors. +- [next-auth](https://next-auth.js.org) for build-in security over your walled garden + SEC requirements for **not** marketing private placements (SAFE) to non-accredited investors. + +- [next-seo](https://github.com/garmeeh/next-seo) for easy and efficient Search Engine Optimization. -- next-seo for easy and efficient Search Engine Optimization. +- jest with [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/) to declaratively test components and page renders. -- jest/React Testing Library to declaratively test components and page renders. +- [Twilio Sendgrid](https://sendgrid.net) support. -- Sensible defaults! +- Sensible and basic by design! ## Development Setup @@ -36,10 +42,12 @@ yarn run dev 🚀 The dev site will be running locally at `localhost:3000` 🚀. -#### Environment +#### Environment + You'll need some credentials to get up and running properly. -Create a `.env` file in the same directory as your `package.json`, as follows. +Create a `.env` file in the same directory as your `package.json`, as follows. + ```env DATABASE_URL="postgresql://" SHADOW_DATABASE_URL="postgresql:// +FROM_EMAIL="@" NEXTAUTH_URL=http://localhost:3000 CONVERTKIT_API_URL=https://api.convertkit.com/v3/ CONVERTKIT_API_KEY= CONVERTKIT_FORM_ID= +SAFE_TYPE=Cap # One of: 'Cap', 'MFN', 'Discount' ``` -### Tests +### Tests -Tests leverage `jest` and Kent Dodd's `react testing library`. These can -be found under the `__tests__` directory and run with `yarn run test`. +Tests leverage `jest` and Kent Dodd's excellent [\_React Testing Library](https://testing-library.com/docs/react-testing-library/intro/). These can +be found under the `__tests__` directory and run with `yarn run test`. -### Content updates +### Content updates Make your content changes to the `cms.data.js` file in the root of this -repository. In addition, you'll need to edit `siteMetadata.js` for proper SEO updating. +repository. In addition, you'll need to edit `siteMetadata.js` for proper SEO updating. > ℹ We are upgrading and standardizing the naming conventions so that they may be updated without examining the component codebase. ℹ -### Newsletter signup +### Newsletter signup -The `Footer` component includes a signup for a newsletter through ConvertKit. +The `Footer` component includes a signup for a newsletter through ConvertKit. Feel free to replace or add to the functionality in `pages/api/convertkit.js` -for additional providers (such as Buttowndown or Mailchip). +for additional providers (such as Buttowndown or Mailchip). ### Database Infrastructure @@ -82,11 +92,11 @@ ORM. #### Updating tables -To update tables we use Prisma's tools. +To update tables we use Prisma's tools. > _Prisma has fantastic documentation https://www.prisma.io/docs/!_ -Simply add a table via the schema classes in the `prisma/schema.prisma` file. +Simply add a table via the schema classes in the `prisma/schema.prisma` file. Once finished run `npx prisma format && npx migrate dev` to format/lint the prisma schema and migrate it. Your client will update locally. @@ -95,38 +105,39 @@ Commit the changes from `prisma/schema.prisma` and the migration file. :boom: > _:warning: Production sites will need to be built twice on CI/CD infra, depending on your setup :warning:._ -#### CRUD Operations +#### CRUD Operations Database functionality lives in the `/lib` directory. In particular, a global import `prisma` is in `prisma.js`. -This contains a `prisma` object you should use via a default export. +This contains a `prisma` object you should use via a default export. ##### `db.js` or `db.ts` -CRUD operations are in the `lib/db*{.js|.ts}`. In particular, examples + +CRUD operations are in the `lib/db*{.js|.ts}`. In particular, examples of creating, reading, updating, and deleting table objects are extant within -this file. +this file. > :notebook: Inline documentation is critical and provided using @jsdoc! ### Authentication Infrastructure + Auth is provided out of the box by [next-auth](https://next-auth.js.org). In particular, -we use the [Prisma Adapter](https://next-auth.js.org/adapters/prisma) +we use the [Prisma Adapter](https://next-auth.js.org/adapters/prisma) throughout this project. #### Client-side Page Authentication We add authentication to individual pages via the client, which checks for the auth session, validating it via the /api/auth/session backend api function via the `useSession` hook. This hook is populated by the `SessionProvider` Higher Order Component within the custom `_app.jsx` Next App overload. -After successful authentication, the redirected user will have a state session stored +After successful authentication, the redirected user will have a state session stored in their browser. #### Server-side Page Authentication For server-side rendering and other protected api endpoints, such as /api/, we check for the session to confirm that the header provides the appropriate authentication. -This is handled seamlessly within via the next-auth library. - +This is handled seamlessly within via the next-auth library. #### Providers @@ -136,13 +147,11 @@ Right now we offer the following authentication providers: - (coming soon) Google Accounts, - (coming soon) Github, - (coming soon) Gitlab, -- (coming soon) Microsoft, -- (coming soon) and Twitter. +- (coming soon) Microsoft, +- (coming soon) and Twitter. We can and will add more at a later date. -## Contributions +## Contributions We :heart: community contributions. - - From bd5a9670406fe5dae91a4db93e8c26fbcd860ded Mon Sep 17 00:00:00 2001 From: "Jason R. Stevens, CFA" Date: Wed, 16 Feb 2022 15:52:34 -0600 Subject: [PATCH 2/4] :notebook: add link to example for heading image [sc-875] --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 33267ea..291954f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -

+

Light -

+

# [Phund](https://example.phund.xyz) From d239c629f9ba9f0de9431b02cebb4537c05d6850 Mon Sep 17 00:00:00 2001 From: "Jason R. Stevens, CFA" Date: Thu, 17 Feb 2022 22:27:37 -0600 Subject: [PATCH 3/4] :bug: fix dead link for CLA to close #37 --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0efb74..eabf014 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ just a few small guidelines you need to follow. Contributions to this project must be accompanied by a Contributor License Agreement. You (or your employer/university) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as -part of the project. Head over to [cla-assistant](https://cla-assistant.io/tincre/phund.xyz) to see +part of the project. Head over to [cla-assistant](https://cla-assistant.io/tincre/phund) to see your current agreements on file or to sign a new one. You generally only need to submit a CLA once, so if you've already submitted one From 3fdefee2edb33a2733670e60bdc3fcb0be589d19 Mon Sep 17 00:00:00 2001 From: "Jason R. Stevens, CFA" Date: Thu, 17 Feb 2022 22:28:13 -0600 Subject: [PATCH 4/4] :notebook: add link to CONTRIBUTING.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 291954f..a35e0e9 100644 --- a/README.md +++ b/README.md @@ -154,4 +154,4 @@ We can and will add more at a later date. ## Contributions -We :heart: community contributions. +We :heart: community contributions. Please see our [contributors guide + CLA](/CONTRIBUTING.md).