Skip to content

ecwk/authentication-app

Repository files navigation

Authentication App

This is a login app based on the devchallenges.io authentication app wireframe

Features

  • 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

What's inside?

Tech Stack

Frontend

Backend

  • Nestjs, a backend web framework powered by Express.js
  • MongoDB, a document-oriented database

Folder Structure

  • apps/api: API powered by nest.js
  • apps/web: web app powered by next.js
  • packages/prettier-config: prettier configurations
  • packages/scripts: scripts used throughout the monorepo (includes custom-commit for formatting git commits)

Utilities

How to Setup?

Prerequisites

Configuration

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

Start the App

For Development

To develop all apps and packages, run the following command:

# Ensure that NODE_ENV=development
cd authentication-app

pnpm dev

For Production

To start the app for production, run the following commands:

# Ensure that NODE_ENV=production
cd authentication-app

pnpm prod