Overview:
The My Course Platform is a comprehensive course management system that offers a range of features for instructors and students. It includes server-side user management with GraphQL and Firebase, as well as various authentication features such as sign in, sign up, and password reset. The platform also supports payment integration with Stripe and PayPal, and allows for extensive customization and styling through Ant Design and styled components. Additionally, it offers features such as page transitions, type support with TypeScript, and a tested code base with Jest. The platform also includes various installation requirements and instructions for proper setup.
Features:
- Server-Side User Management with GraphQL and Firebase
- Sign In, Sign Up, and Sign Out functionality
- Email Change and Password Change options
- Password Reset functionality
- Client and Server-Side Protected Routes with Next.js Authorization and Firebase Session
- Payment integration with Stripe and PayPal
- Custom styling options with Ant Design and Styled Components
- Page Transitions
- Type Support with TypeScript
- Tested Code Base with Jest
- React Testing Library
- Apollo Mocks
- Environment Variables with Dotenv
- Absolute Imports with Babel Module Resolver
- Sentry for error monitoring
- Additional Features: Discounts with Coupons, Affiliate Marketing with Partner Program
Installation:
To install the My Course Platform, follow the steps below:
- Clone the repository:
git clone git@github.com:rwieruch/nextjs-firebase-authentication.git
- Change directory to the cloned repository:
cd nextjs-firebase-authentication
- Install all dependencies using Yarn:
yarn install
- Run the development server:
yarn run dev
- Visit
http://localhost:3000/
in your browser. - Create a
.env
file in the root folder of your project. If using git, add it to your.gitignore
file. - Set the following values in the
.env
file (values may differ for development and production):FIREBASE
: Activate Email/Password Sign-In Method for your Firebase ProjectPAYPAL
: CheckoutSTRIPE
: CheckoutWebhook.firebaseServiceAccountKey.json
: Visit the Firebase Admin SDK and generate afirebaseServiceAccountKey.json
file, which should be placed in your project’s root folder. If using git, add it to your.gitignore
file.
- If you want to have an account with Firebase admin claims, create this Firebase account first via UI, then set the user account’s
uid
in.env
withFIREBASE_ADMIN_UID
, and restart your server. - If using Stripe, you can use the Stripe CLI for Webhook in Development Mode. The secret can be used in
.env
. - To test Stripe integration, you can fake a request with Stripe CLI:
stripe payment_intents create --amount=100 --currency=usd
. Make sure the application is running. Alternatively, you can use the web application’s Stripe Checkout feature for real payments.
Summary:
The My Course Platform is a feature-rich course management system that offers server-side user management, authentication, payment integration, and extensive customization options. With its comprehensive set of features and detailed installation guide, the platform provides a robust solution for managing and delivering online courses.