Note: This project is a technical demonstration showcasing the integration of Convex, Vue.js with the Composition API, and Auth0 as authorization service.
Coverdle is a web-based word-guessing game inspired by Wordle. Players can participate in daily challenges or engage in real-time duels with friends.
- Frontend:
- Vue.js 3 with Vite
- Composition API
- Pinia for state management
- Tailwind CSS for styling
- Backend:
- Convex for the backend database and serverless functions and cron functionality.
- Authentication:
- Testing:
-
Clone the repository:
git clone https://github.com/Oskarowski/coverdle cd coverdle -
Install dependencies:
npm install
-
Set up environment variables:
Create a
.envfile in the root of the project and add the following variables. You can use the.env.examplefile as a template.# Deployment used by `npx convex dev` CONVEX_DEPLOYMENT=dev:your-deployment-name VITE_CONVEX_URL=https://your-convex-url.convex.cloud # Auth0 configuration VITE_AUTH0_DOMAIN=your-auth0-domain VITE_AUTH0_CLIENT_ID=your-auth0-client-id VITE_AUTH0_AUDIENCE=your-auth0-audienceFor running Cypress tests, you'll also need to create a
cypress.env.jsonfile in the root of the project. You can usecypress.env.example.jsonas a template.{ "AUTH0_USERNAME": "your-test-username", "AUTH0_PASSWORD": "your-test-password", "VITE_AUTH0_DOMAIN": "your-auth0-domain" }
-
Start the Convex backend:
npx convex dev
-
Start the Vite frontend:
npm run dev
The application will be available at
http://localhost:5173.
Run unit tests with Vitest:
npm run test:unitRun End-to-End tests with Cypress:
# In development
npm run test:e2e:devCheck for linting errors with ESLint:
npm run lintThis project includes a Dockerfile and nginx.conf for building and serving the application with Docker.
