I'm building this to improve my web dev skills and pick up some new tools, it's going to be a simple web application that lets users create/join groups and having discussions, nothing crazy.
- Use TailwindCSS
- Review and improve on React.js, Next.js, TypeScript and I guess JavaScript
- Improve my testing skills and learn how to use Cypress
- Next.js + TypeScript: Front/Backend
- TailwindCSS: Styling
- Cloudinary: Image Storage
- Next-Auth: Authentication
- Cypress: Testing
- Mantine: UI Component Library
- TipTap: WYSIWYG Editor
- Prisma + MongoDB: Database
Anon depends on a couple of environment variables
-
GITHUB_ID
-
GITHUB_SECRET
Follow this guide to set those up. -
GOOGLE_CLIENT_ID
-
GOOGLE_CLIENT_SECRET
Follow this guide but don't do the Supabase related stuff since this project does not use Supabase.
Instead setAuthorized JavaScript Origins
tohttp://localhost:3000
andAuthorised redirect URIs
tohttp://localhost:3000/api/auth/callback/google
-
REDIRECT_URL
=/api/complete-auth -
NEXTAUTH_URL
=http://localhost:3000 -
DATABASE_URL
Follow this guide and set the variable to your cluster connection string -
CLOUDINARY_URL
See here to create a cloudinary account and a product environment. Get you cloudinary url from the dashboard:Programmable Media>Dashboard
Run npm install
to install the app dependencies then npm run dev
to start up a development server.