-
Notifications
You must be signed in to change notification settings - Fork 29
Added username feature forauthentication #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -13,7 +13,6 @@ | |||||
| <img src="https://img.shields.io/badge/-Express-000000?style=for-the-badge&logo=express&logoColor=white" /> | ||||||
| <img src="https://img.shields.io/badge/-MongoDB-47A248?style=for-the-badge&logo=mongodb&logoColor=white" /><br/> | ||||||
| <img src="https://img.shields.io/badge/-Clerk-6C47FF?style=for-the-badge&logo=clerk&logoColor=white" /> | ||||||
| <img src="https://img.shields.io/badge/-PostHog-F0AD4E?style=for-the-badge&logo=posthog&logoColor=white" /> | ||||||
| <img src="https://img.shields.io/badge/-CodeRabbit-FF5100?style=for-the-badge&logo=coderabbit&logoColor=white" /> | ||||||
| </div> | ||||||
|
|
||||||
|
|
@@ -52,20 +51,22 @@ If you're getting started and need assistance or face any bugs, join our active | |||||
| ## <a name="tech-stack">⚙️ Tech Stack</a> | ||||||
|
|
||||||
| ### Frontend & Mobile | ||||||
| * **[React Native](https://reactnative.dev/)** is a powerful framework for building native mobile applications using React. It allows for a single codebase to run on both iOS and Android while maintaining the performance and feel of a truly native app. | ||||||
| * **[Expo](https://jsm.dev/nativesub-expo)** is the official framework recommended by the React Native team. It provides a robust set of tools and services—like file-based routing and EAS (Expo Application Services)—that streamline the development, building, and submission process. | ||||||
| * **[TypeScript](https://www.typescriptlang.org/)** is a strongly typed programming language that builds on JavaScript. It provides static typing to catch errors early during development, improving code maintainability across the entire full-stack codebase. | ||||||
| * **[NativeWind](https://www.nativewind.dev/)** allows you to style your React Native applications using **Tailwind CSS**. It brings the efficiency of utility-first CSS to mobile, enabling rapid UI development with a consistent design system. | ||||||
|
|
||||||
| - **[React Native](https://reactnative.dev/)** is a powerful framework for building native mobile applications using React. It allows for a single codebase to run on both iOS and Android while maintaining the performance and feel of a truly native app. | ||||||
| - **[Expo](https://jsm.dev/nativesub-expo)** is the official framework recommended by the React Native team. It provides a robust set of tools and services—like file-based routing and EAS (Expo Application Services)—that streamline the development, building, and submission process. | ||||||
| - **[TypeScript](https://www.typescriptlang.org/)** is a strongly typed programming language that builds on JavaScript. It provides static typing to catch errors early during development, improving code maintainability across the entire full-stack codebase. | ||||||
| - **[NativeWind](https://www.nativewind.dev/)** allows you to style your React Native applications using **Tailwind CSS**. It brings the efficiency of utility-first CSS to mobile, enabling rapid UI development with a consistent design system. | ||||||
|
|
||||||
| ### Backend & Database | ||||||
| * **[Node.js](https://nodejs.org/)** serves as the cross-platform JavaScript runtime environment that executes the backend service, providing high performance for asynchronous API operations. | ||||||
| * **[Express](https://expressjs.com/)** is a minimal and flexible Node.js web application framework. It serves as the middleware layer for the Recurrly backend, handling routing, API requests, and seamless integration with the database. | ||||||
| * **[MongoDB](https://www.mongodb.com/)** is a NoSQL database used to store user data and subscription details. Its flexible document-based structure is ideal for handling the evolving data needs of a subscription management platform. | ||||||
|
|
||||||
| - **[Node.js](https://nodejs.org/)** serves as the cross-platform JavaScript runtime environment that executes the backend service, providing high performance for asynchronous API operations. | ||||||
| - **[Express](https://expressjs.com/)** is a minimal and flexible Node.js web application framework. It serves as the middleware layer for the Recurrly backend, handling routing, API requests, and seamless integration with the database. | ||||||
| - **[MongoDB](https://www.mongodb.com/)** is a NoSQL database used to store user data and subscription details. Its flexible document-based structure is ideal for handling the evolving data needs of a subscription management platform. | ||||||
|
|
||||||
| ### Infrastructure & Tools | ||||||
| * **[Clerk](https://jsm.dev/nativesub-clerk)** provides a complete suite of authentication and user management tools. It handles secure sign-ins, session management, and integrates seamlessly with billing workflows. | ||||||
| * **[PostHog](https://jsm.dev/nativesub-posthog)** is an all-in-one platform for product analytics. It helps track user behavior, feature usage, and conversion rates, giving you the data needed to improve the app based on real-world usage. | ||||||
| * **[CodeRabbit](https://jsm.dev/nativesub-coderabbit)** is an AI-powered code review assistant. It provides deep, context-aware feedback on pull requests, helping maintain high code quality and catching potential bugs before they reach production. | ||||||
|
|
||||||
| - **[Clerk](https://jsm.dev/nativesub-clerk)** provides a complete suite of authentication and user management tools. It handles secure sign-ins, session management, and integrates seamlessly with billing workflows. | ||||||
| - **[CodeRabbit](https://jsm.dev/nativesub-coderabbit)** is an AI-powered code review assistant. It provides deep, context-aware feedback on pull requests, helping maintain high code quality and catching potential bugs before they reach production. | ||||||
|
|
||||||
| ## <a name="features">🔋 Features</a> | ||||||
|
|
||||||
|
|
@@ -85,8 +86,6 @@ If you're getting started and need assistance or face any bugs, join our active | |||||
|
|
||||||
| 👉 **Monetization Ready**: Integrated billing and payment flows, allowing you to transition from a free tool to a paid service with professional-grade infrastructure. | ||||||
|
|
||||||
| 👉 **Production-Grade Analytics**: Real-time insights into user behavior and app performance via PostHog, ensuring every feature is optimized for the best user experience. | ||||||
|
|
||||||
| And many more, including code architecture and reusability. | ||||||
|
|
||||||
| ## <a name="quick-start">🤸 Quick Start</a> | ||||||
|
|
@@ -110,63 +109,62 @@ cd react-native-recurrly | |||||
|
|
||||||
| ## Installation | ||||||
|
|
||||||
| Before you begin developing your app, it's essential to set up Expo and initialize your project. | ||||||
| - Start by creating a folder for your application. Then, open your terminal and navigate to that folder. To create an Expo app, you can use: | ||||||
| Before you begin developing your app, it's essential to set up Expo and initialize your project. | ||||||
|
|
||||||
| ```bash | ||||||
| npx create-expo-app@latest | ||||||
| ``` | ||||||
| - Start by creating a folder for your application. Then, open your terminal and navigate to that folder. To create an Expo app, you can use: | ||||||
|
|
||||||
| By default, you get a TypeScript Expo app with Expo Router configured. | ||||||
| ```bash | ||||||
| npx create-expo-app@latest | ||||||
| ``` | ||||||
|
|
||||||
| If you want a different starter (blank JS, blank TS, tabs, etc.), you can run: | ||||||
| By default, you get a TypeScript Expo app with Expo Router configured. | ||||||
|
|
||||||
| ```bash | ||||||
| npx create-expo-app@latest --template | ||||||
| ``` | ||||||
| If you want a different starter (blank JS, blank TS, tabs, etc.), you can run: | ||||||
|
|
||||||
| And pick whichever template fits your workflow. | ||||||
| ```bash | ||||||
| npx create-expo-app@latest --template | ||||||
| ``` | ||||||
|
|
||||||
| And pick whichever template fits your workflow. | ||||||
|
|
||||||
| Since this repository is already created, install dependencies and start the development server: | ||||||
|
|
||||||
| Since this repository is already created, install dependencies and start the development server: | ||||||
| ```bash | ||||||
| npm install | ||||||
| npx expo start | ||||||
| ``` | ||||||
|
|
||||||
| ```bash | ||||||
| npm install | ||||||
| npx expo start | ||||||
| ``` | ||||||
| `npx expo start` means "download (if needed) and execute Expo locally." It starts Metro Bundler, which compiles and serves your React Native code. | ||||||
|
|
||||||
| `npx expo start` means "download (if needed) and execute Expo locally." It starts Metro Bundler, which compiles and serves your React Native code. | ||||||
| Once it starts, you'll see a QR code and shortcut keys in the terminal. For example: | ||||||
|
|
||||||
| Once it starts, you'll see a QR code and shortcut keys in the terminal. For example: | ||||||
| - `a` opens Android | ||||||
| - `i` opens iOS Simulator (macOS) | ||||||
| - `w` opens web | ||||||
| - `r` reloads | ||||||
| - `m` opens dev menu in Expo Go / device context | ||||||
| - `a` opens Android | ||||||
| - `i` opens iOS Simulator (macOS) | ||||||
| - `w` opens web | ||||||
| - `r` reloads | ||||||
| - `m` opens dev menu in Expo Go / device context | ||||||
|
|
||||||
| We don't need to rely on heavy IDE tooling to begin. The easiest flow is using Expo Go on your phone. | ||||||
| We don't need to rely on heavy IDE tooling to begin. The easiest flow is using Expo Go on your phone. | ||||||
|
|
||||||
| Expo Go is a mobile app that lets you test React Native apps quickly by scanning a QR code. It's fast, beginner-friendly, and supports real-time updates while you code. | ||||||
| Expo Go is a mobile app that lets you test React Native apps quickly by scanning a QR code. It's fast, beginner-friendly, and supports real-time updates while you code. | ||||||
|
|
||||||
| Open Google Play Store or Apple App Store, install **Expo Go**, then come back here and scan the QR code. | ||||||
| Open Google Play Store or Apple App Store, install **Expo Go**, then come back here and scan the QR code. | ||||||
|
|
||||||
| ### iOS VPN Turn OFF, and network permissions… | ||||||
| ### iOS VPN Turn OFF, and network permissions… | ||||||
|
|
||||||
| Now open Expo Go and scan the QR code from the terminal. The app should compile and launch. | ||||||
| Now open Expo Go and scan the QR code from the terminal. The app should compile and launch. | ||||||
|
|
||||||
| If all is good, you'll see the starter app with two tabs: Home and Explore. | ||||||
| If all is good, you'll see the starter app with two tabs: Home and Explore. | ||||||
|
|
||||||
| ## Set Up Environment Variables | ||||||
|
|
||||||
| Create a new file named `.env` in the root of your project and add the following content: | ||||||
|
|
||||||
|
|
||||||
| ```env | ||||||
| EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY= | ||||||
| POSTHOG_PROJECT_TOKEN= | ||||||
| POSTHOG_HOST=https://us.i.posthog.com | ||||||
| ``` | ||||||
|
|
||||||
| Replace the placeholder values with your real credentials. You can get these by signing up at: [**Expo**](https://jsm.dev/nativesub-exp), [**PostHog**](https://jsm.dev/nativesub-posthog) . | ||||||
| Replace the placeholder values with your real credentials. You can get these by signing up at: [**Expo**](https://jsm.dev/nativesub-exp). | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix incorrect service reference in environment setup. The text says "You can get these by signing up at: Expo" but the environment variable is 📝 Suggested fix-Replace the placeholder values with your real credentials. You can get these by signing up at: [**Expo**](https://jsm.dev/nativesub-exp).
+Replace the placeholder values with your real credentials. You can get these by signing up at: [**Clerk**](https://jsm.dev/nativesub-clerk).📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
|
|
||||||
| **Running the Project** | ||||||
|
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,12 +1,10 @@ | ||
| const appJson = require('./app.json') | ||
| const appJson = require("./app.json"); | ||
|
|
||
| export default { | ||
| expo: { | ||
| ...appJson.expo, | ||
| extra: { | ||
| ...(appJson.expo?.extra || {}), | ||
| posthogProjectToken: process.env.POSTHOG_PROJECT_TOKEN, | ||
| posthogHost: process.env.POSTHOG_HOST, | ||
| }, | ||
| }, | ||
| } | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,11 +1,11 @@ | ||
| { | ||
| "expo": { | ||
| "name": "react_native-recurrly", | ||
| "slug": "react_native-recurrly", | ||
| "name": "recurrly", | ||
| "slug": "recurrly", | ||
|
Comment on lines
+3
to
+4
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Check for references to the old app name in configuration
rg -i 'react_native-recurrly' -g '!app.json' -C2Repository: adrianhajdin/react-native-recurrly Length of output: 586 Update package.json to match the app name change in app.json. The app 🤖 Prompt for AI Agents |
||
| "version": "1.0.0", | ||
| "orientation": "portrait", | ||
| "icon": "./assets/images/icon.png", | ||
| "scheme": "reactnativerecurrly", | ||
| "scheme": "recurrly", | ||
| "userInterfaceStyle": "automatic", | ||
| "newArchEnabled": true, | ||
| "ios": { | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clarify installation instructions for cloned repository.
The Quick Start section includes generic
npx create-expo-appinstructions, but then states "Since this repository is already created, install dependencies..." This is confusing for users who have already cloned the repo in the previous step. Consider removing lines 114-128 or clearly separating "Creating a new Expo app from scratch" vs. "Using this cloned repository" workflows.🤖 Prompt for AI Agents