Skip to content

appedme/Resynk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 Resync - AI-Powered Resume Builder

Transform your career with smart, ATS-optimized resumes that actually get noticed.

Next.js TypeScript Tailwind CSS Cloudflare Workers

πŸš€ Overview

Resync is the world's first AI-powered resume builder with real-time ATS scoring. Built with modern technologies and designed for the mobile-first generation of job seekers.

✨ Key Features

  • πŸ€– AI Content Generation: Smart suggestions for bullet points and descriptions
  • πŸ“Š Real-time ATS Scoring: Live feedback on resume compatibility
  • 🎨 Modern Templates: Professional, ATS-friendly designs
  • πŸ“± Mobile-First Design: Seamless editing across all devices
  • ☁️ Cloud Sync: Save and access resumes anywhere
  • πŸ” Secure Authentication: Protected user data with Stack Auth
  • πŸ“„ PDF Export: High-quality PDF generation with perfect formatting
  • 🎯 Template Gallery: 50+ professional templates for all industries

πŸ—οΈ Technical Architecture

Frontend Stack

  • Next.js 15 - React framework with App Router
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first styling
  • Framer Motion - Smooth animations
  • Radix UI - Accessible component primitives

Backend & Infrastructure

  • Cloudflare Workers - Edge computing for global performance
  • D1 Database - Serverless SQLite database
  • Drizzle ORM - Type-safe database operations
  • Stack Auth - Secure authentication system
  • OpenAI GPT-4 - AI content generation

Development Tools

  • ESLint & Prettier - Code quality and formatting
  • Husky - Git hooks for quality control
  • pnpm - Fast, disk space efficient package manager

πŸš€ Quick Start

Prerequisites

  • Node.js 18.0 or higher
  • pnpm (recommended) or npm
  • Cloudflare account (for deployment)

Installation

# Clone the repository
git clone https://github.com/appedme/resync.git
cd resync

# Install dependencies
pnpm install

# Copy environment variables
cp .env.example .env.local

# Set up the database
pnpm db:setup

# Start development server
pnpm dev

Environment Variables

Create a .env.local file with the following variables:

# Database
DATABASE_URL="your-d1-database-url"

# Authentication
STACK_AUTH_SECRET="your-stack-auth-secret"
STACK_AUTH_PROJECT_ID="your-stack-auth-project-id"

# AI Integration
OPENAI_API_KEY="your-openai-api-key"

# Cloudflare
CLOUDFLARE_ACCOUNT_ID="your-cloudflare-account-id"
CLOUDFLARE_API_TOKEN="your-cloudflare-api-token"

πŸ“– Documentation

Project Structure

src/
β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”œβ”€β”€ dashboard/         # User dashboard
β”‚   β”œβ”€β”€ editor/            # Resume editor
β”‚   └── ...
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ editor/           # Editor-specific components
β”‚   β”œβ”€β”€ landing/          # Landing page components
β”‚   └── ui/               # Reusable UI components
β”œβ”€β”€ lib/                   # Utility functions and configurations
β”‚   β”œβ”€β”€ db/               # Database schema and operations
β”‚   β”œβ”€β”€ auth/             # Authentication logic
β”‚   └── utils/            # Helper functions
β”œβ”€β”€ types/                 # TypeScript type definitions
└── hooks/                # Custom React hooks

Database Schema

The application uses Drizzle ORM with the following main tables:

  • users - User account information
  • resumes - Resume data and metadata
  • templates - Resume template definitions

API Routes

  • GET /api/resumes - Fetch user resumes
  • POST /api/resumes - Create new resume
  • PUT /api/resumes/:id - Update resume
  • DELETE /api/resumes/:id - Delete resume
  • POST /api/generate-pdf - Generate PDF from resume data

πŸ› οΈ Development

Available Scripts

# Development
pnpm dev              # Start development server
pnpm build            # Build for production
pnpm start            # Start production server
pnpm lint             # Run ESLint
pnpm type-check       # Run TypeScript checks

# Database
pnpm db:generate      # Generate database migrations
pnpm db:migrate       # Run database migrations
pnpm db:studio        # Open Drizzle Studio
pnpm db:seed          # Seed database with sample data

# Deployment
pnpm deploy           # Deploy to Cloudflare
pnpm preview          # Preview deployment locally

Adding New Features

  1. Create Components: Add new React components in src/components/
  2. Define Types: Add TypeScript types in src/types/
  3. Add API Routes: Create new API endpoints in src/app/api/
  4. Database Changes: Update schema in src/lib/db/schema.ts
  5. Tests: Add tests in __tests__/ directory

πŸ“± Mobile Development

Resync is built mobile-first with:

  • Responsive design that works on all screen sizes
  • Touch-optimized interface
  • Progressive Web App (PWA) capabilities
  • Offline functionality for core features

πŸ”§ Configuration

Customizing Templates

Templates are defined in src/components/editor/templates/. To add a new template:

  1. Create a new template component
  2. Add it to the template registry
  3. Update the database with template metadata
  4. Add preview images and descriptions

AI Integration

The AI features use OpenAI's GPT-4 API. Configure the prompts and behavior in:

  • src/lib/ai/ - AI service functions
  • src/app/api/ai/ - AI API endpoints

πŸš€ Deployment

Cloudflare Pages

# Build and deploy
pnpm deploy

# Preview deployment
pnpm preview

Environment Setup

  1. Set up Cloudflare D1 database
  2. Configure environment variables in Cloudflare dashboard
  3. Set up custom domain (optional)
  4. Configure analytics and monitoring

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Use TypeScript for all new code
  • Follow the existing code style and conventions
  • Run pnpm lint before submitting
  • Add tests for new features

πŸ“Š Performance

  • Load Time: Sub-second page loads with edge computing
  • Bundle Size: Optimized for minimal JavaScript delivery
  • SEO: Server-side rendering for better search visibility
  • Accessibility: WCAG 2.1 AA compliant

πŸ”’ Security

  • Authentication: Secure JWT-based authentication
  • Data Protection: Encrypted data storage
  • GDPR Compliance: User data privacy controls
  • Rate Limiting: API protection against abuse

πŸ“ˆ Analytics & Monitoring

  • Error Tracking: Comprehensive error monitoring
  • Performance Monitoring: Real-time performance metrics
  • User Analytics: Privacy-focused usage analytics
  • Uptime Monitoring: 99.9% uptime SLA

πŸ†˜ Support

Getting Help

FAQ

Q: How do I reset my database? A: Run pnpm db:reset to reset your local database.

Q: Can I use this commercially? A: Yes, see our license for details.

Q: How do I contribute a new template? A: See our template contribution guide.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments


🎯 What's Next?

  • Mobile App: Native iOS and Android applications
  • Advanced AI: Enhanced content suggestions and optimization
  • Team Features: Collaboration tools for organizations
  • Integrations: Connect with job boards and ATS systems

Built with ❀️ by the Resync Team

Website β€’ Demo β€’ Documentation β€’ Support

About

Craft Your Career Story with Style.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published