A comprehensive web application builder platform with user management, payments, resources, and more.
- User Management - Complete authentication with roles (admin, user, moderator)
- Payment Processing - Stripe integration for subscriptions and one-time payments
- Resource Management - Educational resources with step-by-step guides
- Email System - Template-based email system with tracking
- Booking System - Appointment scheduling for consultations
- Admin Dashboard - Complete admin interface for managing all aspects
- Timeline - Project timeline and milestone tracking
- Form Management - Dynamic form submissions with analytics
This is a monorepo built with:
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Backend: GraphQL API, Node.js
- Database: PostgreSQL (Neon.tech)
- Authentication: NextAuth.js with multiple providers
- Payments: Stripe integration
- Email: Resend API
- Deployment: Vercel
The application includes a comprehensive database schema with:
users
- User accounts with role-based accessauth_sessions
- Authentication session managementapp_settings
- Application configurationuser_settings
- Per-user preferences
payments
- Payment transactions and billingpricing_tiers
- Subscription plans and pricinguser_subscriptions
- User subscription managementbookings
- Appointment and consultation booking
resource_cards
- Educational resourcesresource_steps
- Step-by-step guidestimeline_items
- Project milestonesform_submissions
- Contact and lead forms
email_templates
- Email template managementemail_logs
- Email delivery trackingemail_messages
- Internal messaging
nav_items
- Dynamic navigation managementactivity_logs
- System audit trail
- Node.js 18+
- PostgreSQL database (we recommend Neon.tech)
- Stripe account for payments
- Resend account for emails
-
Clone the repository
git clone https://github.com/PushButtonPlatforms/web-app-builder-portal.git cd web-app-builder-portal
-
Install dependencies
npm install # or in the monorepo structure: cd apps/front && npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your actual values
-
Set up the database
The database schema is already deployed to Neon.tech. If you need to redeploy:
# The complete schema includes all tables and relationships # Connection string: postgresql://neondb_owner:npg_JlELBfn9oRr4@ep-twilight-lab-a4q3zm2a-pooler.us-east-1.aws.neon.tech/neondb?sslmode=require
-
Run the development server
npm run dev # or for monorepo: cd apps/front && npm run dev
-
Open your browser Navigate to http://localhost:3000
The application is ready for deployment on Vercel:
-
Connect to GitHub
- Import the repository in Vercel
- Connect to your Neon.tech database
-
Set environment variables
- Copy from
.env.production.example
- Add your production API keys
- Copy from
-
Deploy
- Vercel will automatically deploy on push to main
The application uses PostgreSQL with the following key features:
- UUID primary keys for all tables
- Proper foreign key relationships
- Automatic timestamp tracking
- Comprehensive indexing
- Audit trail logging
Supports multiple authentication methods:
- Email/password
- Google OAuth
- GitHub OAuth
- Magic link (via email)
Stripe integration includes:
- One-time payments
- Subscription management
- Webhook handling
- Invoice generation
The application includes a GraphQL API with:
- User management
- Authentication
- Payment processing
- Resource management
Additional REST endpoints for:
- Webhook handling
- File uploads
- External integrations
web-app-builder-portal/
βββ apps/
β βββ front/ # Next.js frontend application
β β βββ app/ # Next.js 14 app directory
β β βββ components/ # React components
β β βββ lib/ # Utilities and configurations
β βββ api/ # GraphQL API server
βββ packages/
β βββ dto/ # Data Transfer Objects
β βββ common/ # Shared utilities
βββ database/
βββ schema.sql # Complete database schema
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run type-check # Run TypeScript checks
- Authentication: Secure session management with NextAuth.js
- Authorization: Role-based access control
- Data Validation: Input validation on all forms
- SQL Injection: Protected with parameterized queries
- XSS Protection: React's built-in protection + sanitization
- CSRF Protection: Built into NextAuth.js
- Error Tracking: Integration ready for Sentry
- Analytics: Ready for Google Analytics/Vercel Analytics
- Performance: Web Vitals tracking
- Database: Query performance monitoring
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Email: support@pushbuttonbuild.com
- Issues: GitHub Issues
- Documentation: Wiki
- Advanced analytics dashboard
- Multi-tenant support
- API rate limiting
- Advanced caching
- Mobile app support
- Third-party integrations
- Advanced reporting
- White-label solutions
Built with β€οΈ by PushButton Platforms