Resume Wizard is a digital tool designed to simplify the creation of professional-quality resumes. Developed collaboratively, this tool leverages advanced technologies to help users produce stellar job experiences and project descriptions.
- User-friendly Interface: Easy-to-use interface for creating resumes.
- Customizable Templates: Various templates to suit different styles and preferences.
- PDF Export: Convert resumes to PDF format.
- AI Integration: Utilizes the OpenAI API for intelligent suggestions to enhance resume content.
- Data Management: Secure data storage and user authentication through PocketBase.
- Frontend: Built with Svelte for its concise syntax and powerful reactive features.
- Backend: Managed with TypeScript to ensure robust type safety, scalability, and maintainability.
- AI Integration: OpenAI API for personalized content suggestions.
- Data Management: PocketBase for data storage and authentication.
- Hosting: Deployed on Vercel for fast and reliable performance.
Ensure you have the following installed:
If a new package is added to a branch, make sure to run:
npm installBefore running the dev command or pushing to a branch.
To add a package, use:
npm install
npm add {package}And to start the server locally in development mode:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --openTo create a production version of your app:
npm run buildYou can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment. We currently have the Node addapter installed and specilfied in svelte.config.js
Use the included docker-compose file:
version: '3.7'
services:
resumewizard:
# For a local build using included Dockerfile
# build:
# context: .
# dockerfile: Dockerfile
# ports:
# - "80:8080"
# environment:
# - OPENAI_API_KEY=${OPENAI_API_KEY}
# Pull latest image from github
image: ghcr.io/thecaffeinatedcoders/resume-wizard:latest
container_name: resumewizard
restart: unless-stopped
ports:
- "80:8080" # Map port 80 on the host to port 8080 in the container
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- PUBLIC_POCKETBASE_URL=http://127.0.0.1:81 # Use the service name and port defined in the pocketbase service
# Pull unofficial pocketbase image
pocketbase:
image: spectado/pocketbase:latest
container_name: pocketbase
restart: unless-stopped
ports:
- "81:80" # Map port 81 on the host to port 80 in the container
volumes:
- /pb_data:/pb_data
- /pb_data:/pb_public
environment:
- PUBLIC_POCKETBASE_URL=http://127.0.0.1:81
Make sure that an OPENAI_API_KEY enviroment variable is defined in your shell or .env file with a valid OpenAI API key generated on their website https://platform.openai.com/api-keys.
Also change PUBLIC_POCKETBASE_URL to a public url if exposing externally. Adjust pocketbase data volumes if necessary.
Deploy using docker-compose up to run both a pocketbase service and resumewizard node service.
- PDF Generation: Initially chose Python for its existing libraries but faced integration issues with the front end. Switched to JavaScript for better compatibility and seamless API integration.
- API Integration: Learned to navigate and effectively integrate the OpenAI API for enhanced resume content.
- Unified Design: Led the front-end design effort using Figma to ensure a consistent and efficient design process.
- Backend Language Choice: Faced conflicts in choosing the right backend language. Ultimately, JavaScript was chosen for its compatibility with necessary libraries and API integration.
- Svelte Directory Structure: Encountered issues with pagination due to Svelte’s unique directory system. Future improvements would include a deeper understanding of Svelte’s structure from the beginning.
- Powered by Svelte
- Data management facilitated by PocketBase
- Deployed on Vercel
Further details are included in the Devpost
Made with ❤️ by The Caffeinated Coders