Giter VIP home page Giter VIP logo

coverlettergpt's Introduction

CoverLetterGPT.xyz

Running it locally

After cloning this repo, you can run it locally by following these steps:

  1. Install Wasp by running curl -sSL https://get.wasp-lang.dev/installer.sh | sh in your terminal.
  2. Create a .env.server file in the root of the project
  3. Copy the env.example file contents to .env.server and fill in your API keys
  4. Run wasp db migrate-dev
  5. Run wasp start
  6. Go to localhost:3000 in your browser (your NodeJS server will be running on port 3001)

How it works

coverlettergpt.xyz was built in a couple of days using a few really cool tools:

  • 🐝 Wasp - allows you to build full-stack apps with 10x less boilerplate
  • 🎨 Chakra-ui - UI components for React that look good and are easy to work with
  • 🤖 OpenAI - GPT-3.5 turbo API
  • 💸 Stripe - for tip payments

Wasp as the full-stack framework allows you to describe your app’s core features in the main.wasp config file in the root directory. Then it builds and glues these features into a React-Express-Prisma app for you so that you can focus on writing the client and server-side logic instead of configuring. For example, I did not have to use any third-party libraries for Google Authentication. I just wrote a couple lines of code in the config file stating that I want to use Google Auth, and Wasp configures it for me. Check out the main.wasp file for more.

Also, Chakra-ui is great for building nice looking UI’s really quickly and easily. Some people are turned off by the fact that they’re React components, but I find that they’re easy to customize and configure, and get me started on designs 10x faster and with less code than tailwind.

For more info on the prompts and configuration I used for the OpenAI API, check out the src/server/actions.ts file.

Stripe makes the payment functionality super easy. I just used their Pre-configured Checkout feature on a one-time purchase product. After the user pays, I update their hasPaid and datePaid fields in the database. Then I use Wasp's integrated Jobs feature to run a cron job that checks if 3 months has passed since paying, and if so, it sets hasPaid to false again.

I also implemented a cron job to send an email to the user to notify them 2 weeks before their subscription ends. I used SendGrid for the email service.

If you have any other questions, feel free to reach out to me on twitter

coverlettergpt's People

Contributors

infomiho avatar vincanger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.