├── README.md ├── backend ├── .eslintrc.js ├── .gitignore ├── @types │ ├── passport-user.d.ts │ └── session.d.ts ├── package-lock.json ├── package.json ├── src │ ├── app.ts │ ├── config │ │ ├── passport.ts │ │ ├── redisClient.ts │ │ └── session.ts │ ├── controllers │ │ ├── blog-posts.ts │ │ └── users.ts │ ├── env.ts │ ├── middlewares │ │ ├── errorHandler.ts │ │ ├── image-upload.ts │ │ ├── rate-limit.ts │ │ ├── requiresAuth.ts │ │ ├── setSessionReturnTo.ts │ │ └── validateRequestSchema.ts │ ├── models │ │ ├── blog-post.ts │ │ ├── comment.ts │ │ ├── email-verification-token.ts │ │ ├── password-reset-token.ts │ │ └── user.ts │ ├── routes │ │ ├── blog-posts.ts │ │ └── users.ts │ ├── server.ts │ ├── utils │ │ ├── assertIsDefined.ts │ │ ├── auth.ts │ │ ├── email.ts │ │ └── validation.ts │ └── validation │ │ ├── blog-posts.ts │ │ ├── comments.ts │ │ └── users.ts └── tsconfig.json └── frontend ├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── social_media_preview_image.png ├── src ├── assets │ └── images │ │ ├── flow-blog-logo.png │ │ └── profile-pic-placeholder.png ├── components │ ├── BlogPostEntry.tsx │ ├── BlogPostsGrid.tsx │ ├── ConfirmationModal.tsx │ ├── Footer.tsx │ ├── LoadingButton.tsx │ ├── Markdown.tsx │ ├── NavBar.tsx │ ├── PaginationBar.tsx │ ├── UserProfileLink.tsx │ ├── auth │ │ ├── AuthModalsProvider.tsx │ │ ├── GitHubSignInButton.tsx │ │ ├── GoogleSignInButton.tsx │ │ ├── LoginModal.tsx │ │ ├── ResetPasswordModal.tsx │ │ ├── SignUpModal.tsx │ │ └── SocialSignInSection.tsx │ ├── comments │ │ ├── BlogCommentSection.tsx │ │ ├── Comment.tsx │ │ ├── CommentThread.tsx │ │ ├── CreateCommentBox.tsx │ │ └── EditCommentBox.tsx │ └── form │ │ ├── FormInputField.tsx │ │ ├── MarkdownEditor.tsx │ │ └── PasswordInputField.tsx ├── hooks │ ├── useAuthenticatedUser.ts │ ├── useCountdown.ts │ └── useUnsavedChangesWarning.ts ├── models │ ├── blog-post.ts │ ├── comment.ts │ └── user.ts ├── network │ ├── api │ │ ├── blog.ts │ │ └── users.ts │ ├── axiosInstance.ts │ └── http-errors.ts ├── pages │ ├── 404.tsx │ ├── 500.tsx │ ├── _app.tsx │ ├── _document.tsx │ ├── api │ │ └── revalidate-post │ │ │ └── [slug].ts │ ├── blog │ │ ├── [slug].tsx │ │ ├── edit-post │ │ │ └── [slug].tsx │ │ ├── index.tsx │ │ └── new-post.tsx │ ├── imprint.tsx │ ├── index.tsx │ ├── onboarding.tsx │ ├── privacy.tsx │ └── users │ │ └── [username].tsx ├── styles │ ├── App.module.css │ ├── BlogPostPage.module.css │ ├── BlogPostsGrid.module.css │ ├── Footer.module.css │ ├── Home.module.css │ ├── Markdown.module.css │ ├── NavBar.module.css │ ├── UserProfilePage.module.css │ ├── custom-theme.scss │ ├── globals.scss │ └── utils.css └── utils │ ├── utils.ts │ └── validation.ts └── tsconfig.json /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/README.md -------------------------------------------------------------------------------- /backend/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/.eslintrc.js -------------------------------------------------------------------------------- /backend/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/.gitignore -------------------------------------------------------------------------------- /backend/@types/passport-user.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/@types/passport-user.d.ts -------------------------------------------------------------------------------- /backend/@types/session.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/@types/session.d.ts -------------------------------------------------------------------------------- /backend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/package-lock.json -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/package.json -------------------------------------------------------------------------------- /backend/src/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/app.ts -------------------------------------------------------------------------------- /backend/src/config/passport.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/config/passport.ts -------------------------------------------------------------------------------- /backend/src/config/redisClient.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/config/redisClient.ts -------------------------------------------------------------------------------- /backend/src/config/session.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/config/session.ts -------------------------------------------------------------------------------- /backend/src/controllers/blog-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/controllers/blog-posts.ts -------------------------------------------------------------------------------- /backend/src/controllers/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/controllers/users.ts -------------------------------------------------------------------------------- /backend/src/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/env.ts -------------------------------------------------------------------------------- /backend/src/middlewares/errorHandler.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/errorHandler.ts -------------------------------------------------------------------------------- /backend/src/middlewares/image-upload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/image-upload.ts -------------------------------------------------------------------------------- /backend/src/middlewares/rate-limit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/rate-limit.ts -------------------------------------------------------------------------------- /backend/src/middlewares/requiresAuth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/requiresAuth.ts -------------------------------------------------------------------------------- /backend/src/middlewares/setSessionReturnTo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/setSessionReturnTo.ts -------------------------------------------------------------------------------- /backend/src/middlewares/validateRequestSchema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/middlewares/validateRequestSchema.ts -------------------------------------------------------------------------------- /backend/src/models/blog-post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/models/blog-post.ts -------------------------------------------------------------------------------- /backend/src/models/comment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/models/comment.ts -------------------------------------------------------------------------------- /backend/src/models/email-verification-token.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/models/email-verification-token.ts -------------------------------------------------------------------------------- /backend/src/models/password-reset-token.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/models/password-reset-token.ts -------------------------------------------------------------------------------- /backend/src/models/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/models/user.ts -------------------------------------------------------------------------------- /backend/src/routes/blog-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/routes/blog-posts.ts -------------------------------------------------------------------------------- /backend/src/routes/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/routes/users.ts -------------------------------------------------------------------------------- /backend/src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/server.ts -------------------------------------------------------------------------------- /backend/src/utils/assertIsDefined.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/utils/assertIsDefined.ts -------------------------------------------------------------------------------- /backend/src/utils/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/utils/auth.ts -------------------------------------------------------------------------------- /backend/src/utils/email.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/utils/email.ts -------------------------------------------------------------------------------- /backend/src/utils/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/utils/validation.ts -------------------------------------------------------------------------------- /backend/src/validation/blog-posts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/validation/blog-posts.ts -------------------------------------------------------------------------------- /backend/src/validation/comments.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/validation/comments.ts -------------------------------------------------------------------------------- /backend/src/validation/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/src/validation/users.ts -------------------------------------------------------------------------------- /backend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/backend/tsconfig.json -------------------------------------------------------------------------------- /frontend/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/.gitignore -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/README.md -------------------------------------------------------------------------------- /frontend/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/next.config.js -------------------------------------------------------------------------------- /frontend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/package-lock.json -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/package.json -------------------------------------------------------------------------------- /frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/public/favicon.ico -------------------------------------------------------------------------------- /frontend/public/social_media_preview_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/public/social_media_preview_image.png -------------------------------------------------------------------------------- /frontend/src/assets/images/flow-blog-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/assets/images/flow-blog-logo.png -------------------------------------------------------------------------------- /frontend/src/assets/images/profile-pic-placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/assets/images/profile-pic-placeholder.png -------------------------------------------------------------------------------- /frontend/src/components/BlogPostEntry.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/BlogPostEntry.tsx -------------------------------------------------------------------------------- /frontend/src/components/BlogPostsGrid.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/BlogPostsGrid.tsx -------------------------------------------------------------------------------- /frontend/src/components/ConfirmationModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/ConfirmationModal.tsx -------------------------------------------------------------------------------- /frontend/src/components/Footer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/Footer.tsx -------------------------------------------------------------------------------- /frontend/src/components/LoadingButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/LoadingButton.tsx -------------------------------------------------------------------------------- /frontend/src/components/Markdown.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/Markdown.tsx -------------------------------------------------------------------------------- /frontend/src/components/NavBar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/NavBar.tsx -------------------------------------------------------------------------------- /frontend/src/components/PaginationBar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/PaginationBar.tsx -------------------------------------------------------------------------------- /frontend/src/components/UserProfileLink.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/UserProfileLink.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/AuthModalsProvider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/AuthModalsProvider.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/GitHubSignInButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/GitHubSignInButton.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/GoogleSignInButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/GoogleSignInButton.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/LoginModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/LoginModal.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/ResetPasswordModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/ResetPasswordModal.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/SignUpModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/SignUpModal.tsx -------------------------------------------------------------------------------- /frontend/src/components/auth/SocialSignInSection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/auth/SocialSignInSection.tsx -------------------------------------------------------------------------------- /frontend/src/components/comments/BlogCommentSection.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/comments/BlogCommentSection.tsx -------------------------------------------------------------------------------- /frontend/src/components/comments/Comment.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/comments/Comment.tsx -------------------------------------------------------------------------------- /frontend/src/components/comments/CommentThread.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/comments/CommentThread.tsx -------------------------------------------------------------------------------- /frontend/src/components/comments/CreateCommentBox.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/comments/CreateCommentBox.tsx -------------------------------------------------------------------------------- /frontend/src/components/comments/EditCommentBox.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/comments/EditCommentBox.tsx -------------------------------------------------------------------------------- /frontend/src/components/form/FormInputField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/form/FormInputField.tsx -------------------------------------------------------------------------------- /frontend/src/components/form/MarkdownEditor.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/form/MarkdownEditor.tsx -------------------------------------------------------------------------------- /frontend/src/components/form/PasswordInputField.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/components/form/PasswordInputField.tsx -------------------------------------------------------------------------------- /frontend/src/hooks/useAuthenticatedUser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/hooks/useAuthenticatedUser.ts -------------------------------------------------------------------------------- /frontend/src/hooks/useCountdown.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/hooks/useCountdown.ts -------------------------------------------------------------------------------- /frontend/src/hooks/useUnsavedChangesWarning.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/hooks/useUnsavedChangesWarning.ts -------------------------------------------------------------------------------- /frontend/src/models/blog-post.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/models/blog-post.ts -------------------------------------------------------------------------------- /frontend/src/models/comment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/models/comment.ts -------------------------------------------------------------------------------- /frontend/src/models/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/models/user.ts -------------------------------------------------------------------------------- /frontend/src/network/api/blog.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/network/api/blog.ts -------------------------------------------------------------------------------- /frontend/src/network/api/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/network/api/users.ts -------------------------------------------------------------------------------- /frontend/src/network/axiosInstance.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/network/axiosInstance.ts -------------------------------------------------------------------------------- /frontend/src/network/http-errors.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/network/http-errors.ts -------------------------------------------------------------------------------- /frontend/src/pages/404.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/404.tsx -------------------------------------------------------------------------------- /frontend/src/pages/500.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/500.tsx -------------------------------------------------------------------------------- /frontend/src/pages/_app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/_app.tsx -------------------------------------------------------------------------------- /frontend/src/pages/_document.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/_document.tsx -------------------------------------------------------------------------------- /frontend/src/pages/api/revalidate-post/[slug].ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/api/revalidate-post/[slug].ts -------------------------------------------------------------------------------- /frontend/src/pages/blog/[slug].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/blog/[slug].tsx -------------------------------------------------------------------------------- /frontend/src/pages/blog/edit-post/[slug].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/blog/edit-post/[slug].tsx -------------------------------------------------------------------------------- /frontend/src/pages/blog/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/blog/index.tsx -------------------------------------------------------------------------------- /frontend/src/pages/blog/new-post.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/blog/new-post.tsx -------------------------------------------------------------------------------- /frontend/src/pages/imprint.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/imprint.tsx -------------------------------------------------------------------------------- /frontend/src/pages/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/index.tsx -------------------------------------------------------------------------------- /frontend/src/pages/onboarding.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/onboarding.tsx -------------------------------------------------------------------------------- /frontend/src/pages/privacy.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/privacy.tsx -------------------------------------------------------------------------------- /frontend/src/pages/users/[username].tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/pages/users/[username].tsx -------------------------------------------------------------------------------- /frontend/src/styles/App.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/App.module.css -------------------------------------------------------------------------------- /frontend/src/styles/BlogPostPage.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/BlogPostPage.module.css -------------------------------------------------------------------------------- /frontend/src/styles/BlogPostsGrid.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/BlogPostsGrid.module.css -------------------------------------------------------------------------------- /frontend/src/styles/Footer.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/Footer.module.css -------------------------------------------------------------------------------- /frontend/src/styles/Home.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/Home.module.css -------------------------------------------------------------------------------- /frontend/src/styles/Markdown.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/Markdown.module.css -------------------------------------------------------------------------------- /frontend/src/styles/NavBar.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/NavBar.module.css -------------------------------------------------------------------------------- /frontend/src/styles/UserProfilePage.module.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/UserProfilePage.module.css -------------------------------------------------------------------------------- /frontend/src/styles/custom-theme.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/custom-theme.scss -------------------------------------------------------------------------------- /frontend/src/styles/globals.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/globals.scss -------------------------------------------------------------------------------- /frontend/src/styles/utils.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/styles/utils.css -------------------------------------------------------------------------------- /frontend/src/utils/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/utils/utils.ts -------------------------------------------------------------------------------- /frontend/src/utils/validation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/src/utils/validation.ts -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codinginflow/nextjs-express-typescript-course/HEAD/frontend/tsconfig.json --------------------------------------------------------------------------------