This is a login app based on the devchallenges.io authentication app wireframe
- OAuth login with Google and Github
- Image uploads with S3 Buckets
- View and edit profile
- Persistent login with Passport.js
- Context API
- Server and client-side validation
- Popular react hook libraries (includes React Hook Form and React Query)
- Built using Turborepo, a monorepo build tool
- Implemented CI/CD with Github Actions
Frontend
Backend
apps/api
: API powered by nest.jsapps/web
: web app powered by next.jspackages/prettier-config
:prettier
configurationspackages/scripts
: scripts used throughout the monorepo (includescustom-commit
for formatting git commits)
- Turborepo for building monorepos
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- pnpm: ^6.0.0
- node: ^16.0.0
- MongoDB Server
- S3 Bucket
Refer to .env.example
in both apps/api
and apps/web
directories and create a .env
file in each.
apps/api
uses.env
apps/web
uses.env.local
Alternatively, you can use setup environmental variables in your system
To develop all apps and packages, run the following command:
# Ensure that NODE_ENV=development
cd authentication-app
pnpm dev
To start the app for production, run the following commands:
# Ensure that NODE_ENV=production
cd authentication-app
pnpm prod