このクローンは、概念が持っている素晴らしいノートテイキング機能のいくつかを再現しようとします。概念がわからない場合はまだ、まだチェックすることを強くお勧めします!
?ライブデモ:notion-clone.kmuenster.com
?中程度の記事:概念のようなテキストエディターを構築する方法

/ブロックを異なるコンテンツタイプに変える)<a>のような通常のHTMLタグを使用)/imageコマンドを使用して画像をアップロード)フロントエンドはnext.jsで構築され、完全にサーバー側にレンダリングされています。バックエンドでは、REST APIがユーザーコンテンツの保存とユーザー管理を処理します。
next.js・React.js・scss/sass
Express.js・mongodb with mongoose・nodemailer・jwt(cookieベース)
プロジェクトをクローンします
git clone https://github.com/konstantinmuenster/notion-clone.git
cd notion-clone環境変数を追加します
バックエンド: backendディレクトリに.envファイルを作成します。
FRONTEND_URL="http://localhost:3000"
DOMAIN="localhost"
JWT_KEY="yourSecretForTokenGeneration"
PORT=8080
MONGO_URI="mongodb+srv://username:[email protected]/database?retryWrites=true&w=majority"
MAIL_HOST="smtp.sendgrid.net"
MAIL_PORT=465
MAIL_USER="apiKey"
MAIL_SENDER="Your Name <[email protected]>"
MAIL_PASSWORD="yourSendGridApiKey"
FrontEnd: frontendディレクトリに.env.localファイルを作成します。
NEXT_PUBLIC_API="http://localhost:8080" // references your Backend API endpoint
インストールしてバックエンドを実行します(http:// localhost:8080)
cd backend
npm install
npm startフロントエンドをインストールして実行する(http:// localhost:3000)
cd frontend
npm install
npm run devノードアプリケーションとカスタムドメインをサポートするほぼすべてのプロバイダーでアプリケーションをホストできます。 vercel.comのフロントエンドとheroku.comのバックエンドをホストすることにしました。ただし、必要に応じて、同じプロバイダーでフロントエンドとバックエンドの両方をホストできます。
新しいMongoDBクラスターを事前に作成する必要があります。すべてのページを保存し、データをブロックします。 Mongodb Atlasで無料で作成できます。
確かに、次のコレクションを作成してください。
確かに、すべての人へのネットワークアクセスを許可してください(Herokuのため)。
heroku.comにバックエンドを展開する場合は、heroku.comで希望する地域で新しいアプリを作成します。
バックエンドにすべての生産環境変数を追加してください。このREADMEのインストール部分に必要な変数を確認できます。
バックエンドAPIにカスタムドメインを追加してください。アプリケーションはCookieベースの認証を使用するため、同じドメインでバックエンドとフロントエンドを実行する必要があります。たとえば、 www.notion-clone.kmuenster.comでフロントエンドを実行し、 api.notion-clone.kmuenster.comでバックエンドを実行します。
スケジュールされたジョブを実行したいですか?非アクティブなページとユーザーを削除するために、スケジュールされたジョブを頻繁に実行します。この機能も必要な場合は、アプリケーションにさらにdynosを追加し、Herokuスケジューラを介してJob
$ node jobs/index.jsを実行する必要があります。
最後に、Heroku Gitを使用してアプリを展開できます。
notion-cloneとフロントエンドを含むモノレポであるため、バックエンドをHerokuに押すと、Git Subtreeプッシュを行うことを確認してください。したがって、 git subtree push --prefix backend heroku masterの代わりにgit push heroku master 。したがって、バックエンド部分のみを押します。
vercel.comにフロントエンドを展開する場合は、Vercel CLIを簡単に使用できます。
Vercel CLIを使用すると、サブツリーをプッシュする必要はありません。代わりに、Frontendフォルダーに切り替えてvercelコマンドを実行して展開するだけです。
cd frontend
vercelこれにより、FrontEndアプリケーションのセットアップガイドを介して導かれます。その後、アプリを正常に展開する必要があります。
vercel.comの生産環境変数としてバックエンドAPIエンドポイントを追加してください。
フロントエンドにカスタムドメインを追加してください(バックエンド環境変数で指定したドメインと一致するのが理想的です)
KonstantinMünster - Konstantin.Digital
MITライセンスの下で配布されます。詳細については、 LICENSE参照してください。
https://github.com/konstantinmuenster