A full-stack web application serving as a centralized hub for managing monthly memberships.
Screen.Recording.2024-12-05.at.2.47.11.PM.1.mp4
- User Authentication: Secure login and registration using Google OAuth.
- Database Integration: Fetch and store data with MongoDB.
- Payment Processing: Integrate Stripe API to enable payments.
- REST API: Fetch memberships and handle purchases via Next.js API routes.
- Caching: Implemented caching with Redis, reducing rendering times
- Frontend: React.js, Next.js, Tailwind CSS
- Backend: Node.js, Next.js API Routes
- Database: MongoDB
- Caching: Redis
- Cloud Services: AWS
- Payment Gateway: Stripe API
Follow these instructions to set up the project locally.
- Node.js (v12 or higher)
- npm (Node Package Manager)
- MongoDB (Local or Cloud instance)
- Stripe Account (For payment integration)
- Redis Server (Optional, for caching)
-
Clone the Repository
git clone https://github.com/clay-arras/passhub.git cd passhub
-
Install Dependencies
npm install
-
Configure Environment Variables
Create a
.env
file in the root directory and add the following variables:-
Google OAuth Settings
GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret NEXTAUTH_SECRET=your_nextauth_secret NEXTAUTH_URL=http://localhost:3000
-
MongoDB Connection
MONGODB_URL=your_mongodb_connection_string
-
Stripe API Keys
STRIPE_PUBLIC_KEY=your_stripe_public_key STRIPE_SECRET_KEY=your_stripe_secret_key
-
Redis Configuration (Optional)
REDIS_HOST=your_redis_host REDIS_PASSWORD=your_redis_password REDIS_PORT=your_redis_port
Note: Replace the placeholder values with your actual credentials.
-
-
Run the Application
npm run dev
The app should now be running at
http://localhost:3000
.
-
Access the Application
Open your web browser and navigate to
http://localhost:3000
. -
Authentication
Use the Google Sign-In button to log in or register.
-
Manage Memberships
View available memberships fetched from the MongoDB database.
-
Purchase Memberships
Proceed to checkout using Stripe for payment processing.
This project is licensed under the MIT License.