Web Version Setup
This is the QuickEase 2.0's web version setup. Mobile app is yet to be developed.
Forking the GitHub repository
To contribute or run the app locally, first fork the GitHub repo:
-
Click the Fork button in the top-right corner.
-
Choose your GitHub account as the destination.
-
Then, clone your forked repo on your local device.
git clone https://github.com/your-username/repository-name.git
cd repository-nameTo keep your fork updated with the original:
git remote add upstream https://github.com/dlord213/quickease-2.0.git
git fetch upstream
git merge upstream/mainNote: You can name
upstream
anything you want, but it's standard convention.
Project Structure Overview
As described in the System Architecture section, QuickEase 2.0 follows a client-server structure that logically maps to a three-tier architecture. Here’s a look at the folder layout:
quickease-2.0/ (root directory)
│
├── client/ → Frontend (React + Vite)
│ ├── docs/ → QA-generated client-side documentation
│ ├── public/
│ │ └── assets/
│ ├── src/
│ │ ├── components/
│ │ ├── hooks/
│ │ ├── routes/
│ │ ├── types/
│ │ └── utils/
│ │ └── main.tsx
│ ├── global.css
│ ├── index.html
│ └── vite.config.ts
│
└── server/ → Backend (Fastify + Prisma + PostgreSQL)
├── docs/ → QA-generated server-side documentation
├── modules/ → APIs, services, controllers, and routes
├── prisma/ → Prisma schema and migrations
├── tests/ → Jest mock test cases
├── utils/
├── server.ts
└── fastify.config.ts
Client Setup
Now that you've installed all the prerequisites, it's time to set up the frontend side of the application.
-
Open a new terminal window and navigate to the
client/
directory:cd client
-
Install the required node modules:
npm install
If you encounter dependency version conflicts, try this alternative command instead:
npm install --force-legacy-deps
Once the installation is complete, you're ready to run the client locally or continue with backend setup.
Server Setup
Nice job getting the client set up! Now let’s get the backend running. This will activate the server-side functionalities such as authentication, AI services, and database access.
Step-by-step Backend Setup
-
Open a new terminal and navigate to the
server/
directory:cd server
-
Install dependencies:
npm install
If you run into dependency conflicts:
npm install --force-legacy-deps
-
Install the Model Context Protocol (MCP) SDK:
npm install @modelcontextprotocol/sdk
QuickEase uses Google's Gemini API for AI features. MCP helps standardize and stabilize this connection. This also prevents the error:
Error: Cannot find module '@modelcontextprotocol/sdk/types.js'
Initialize Environment Variables
Create a .env
file inside the server/
directory and define these variables:
JWT_SECRET_KEY
is for the secret key used in JWT.COOKIE_SECRET_KEY
is for the secret key used in cookies.DATABASE_URL
is for the database configuration mainly used in Prisma/PostgreSQL.GOOGLE_GEN_AI_API_KEY
is for @google/gen-ai API key used to generate AI-generated contents.CORS_FRONTEND_HOST
is for the cross-origin resource sharing which allows web pages to make requests to a different domain than the one they were loaded from.
Note: Make sure to wrap the values inside a double quote.
Example:
JWT_SECRET_KEY="your_secret_here"
COOKIE_SECRET_KEY="your_cookie_secret_here"
DATABASE_URL="postgresql://postgres:dlord213@localhost:5432/postgres?schema=public"
GOOGLE_GEN_AI_API_KEY="your_gemini_api_key_here"
CORS_FRONTEND_HOST="http://localhost:5173"
Need help with .env? You may run to AI agents like ChatGPT, Gemini, Claude, etc. and get explanations on what these environment variables are for, or find resources about this which are readily available on the internet. If you still don’t know how this works, contact the developer Jhon Lloyd Viernes or the system analyst Christine Mosqueda if the developer is busy.
Database Setup (PostgreSQL + Prisma)
-
Make sure your database schema is empty — Prisma will create the tables for you.
-
Push the schema migrations to your database by running the
npx prisma db push
command on your terminal. -
Generate the prisma client using the
npx prisma generate
command. -
Use tools like pgAdmin to verify if the tables have been created.
Running the App in Local
Now you're ready to run both frontend and backend!
- On accessing frontend interface: In the terminal where you're inside the client/ directory, run the
npm run dev
command. Then, access the URL in any browser that Vite will give you. By default, it's inlocalhost:5173/
- On powering backend server: In the terminal where you're inside the server/ directory, run the
npm run dev
command. Now your server is running locally and connected to your database and AI services.