An AI-assisted web application built as a capstone project. The app combines a modern web frontend with backend services and AI integrations to deliver an interactive user experience.
- Features
- Tech Stack
- Prerequisites
- Setup
- Environment Variables
- Running the Application
- Project Structure
- Development
- Troubleshooting
- License
- Web-based UI for interacting with AI-assisted workflows
- Configurable AI provider integration (API key driven)
- Local development workflow with hot reload
- Production-ready build and deployment path
Note: This repository is in early development. Application source code and scripts will be added as the capstone progresses. The setup steps below cover both the current repository state and the expected workflow once the app scaffold is in place.
| Layer | Technology (planned) |
|---|---|
| Runtime | Node.js (LTS) |
| Package manager | npm |
| Frontend | React (or Next.js) |
| Backend | Node.js API |
| AI | Provider API (e.g. OpenAI) |
Update this table as you finalize your stack.
Install the following before setting up the project:
| Tool | Minimum version | Verify with |
|---|---|---|
| Git | 2.x | git --version |
| Node.js | 20.x LTS | node --version |
| npm | 10.x | npm --version |
Optional but recommended:
- Cursor or VS Code — IDE with AI-assisted development support
- An AI provider account — for API keys used during development (OpenAI, Anthropic, Azure OpenAI, etc.)
Follow these steps from a clean machine to get the project ready for development.
git clone https://github.com/YOUR_USERNAME/capstone-project.git
cd capstone-projectReplace YOUR_USERNAME with your GitHub username or organization once the remote is published.
If you already have the repo locally, pull the latest changes before installing dependencies:
git pull origin masterIf you use nvm (macOS/Linux) or nvm-windows:
nvm install 20
nvm use 20Confirm versions:
node --version # should print v20.x.x
npm --version # should print 10.x.xOnce a package.json is added to the repository:
npm installThis installs frontend, backend, and shared dependencies into node_modules/ (already listed in .gitignore).
If the project uses separate client and server folders, install in each:
# Example for a monorepo-style layout
cd client && npm install && cd ..
cd server && npm install && cd ..Copy the example environment file and fill in your values:
cp .env.example .envSee Environment Variables for required keys. Never commit .env or real API keys to Git.
After application code is present, confirm dependencies and config:
npm run build # optional: ensure the project compiles
npm test # optional: run the test suiteCreate a .env file in the project root (and add .env to .gitignore if not already present). Example variables for an AI-assisted web app:
| Variable | Required | Description |
|---|---|---|
PORT |
No | Local server port (default: 3000) |
NODE_ENV |
No | development or production |
AI_API_KEY |
Yes* | API key for your AI provider |
AI_API_BASE_URL |
No | Override base URL for custom or proxy endpoints |
DATABASE_URL |
No | Connection string if using a database |
* Required once AI features are implemented.
Example .env.example (commit this file, not .env):
PORT=3000
NODE_ENV=development
AI_API_KEY=your_api_key_here
# AI_API_BASE_URL=https://api.openai.com/v1
# DATABASE_URL=When scripts are defined in package.json, use:
# Start development server (hot reload)
npm run dev
# Start production build locally
npm run build
npm startTypical URLs after startup:
| Service | URL |
|---|---|
| Web app | http://localhost:3000 |
| API | http://localhost:3000/api (or separate port) |
Adjust ports if your configuration differs.
Expected layout as the capstone grows:
capstone-project/
├── client/ # Frontend application (optional split)
├── server/ # Backend API (optional split)
├── public/ # Static assets
├── src/ # Application source (if single-package layout)
├── .env.example # Committed template for environment variables
├── .gitignore
├── LICENSE
├── package.json
└── README.md
Current repository contents: documentation, license, and Git configuration only.
- Create a feature branch:
git checkout -b feature/your-feature-name - Make changes and test locally with
npm run dev - Run lint/tests before committing:
npm run lintandnpm test - Commit with clear messages (e.g.
feat: add chat UI,fix: handle empty API response) - Open a pull request for review
Project-specific rules live in .cursorrules. Keep naming consistent, avoid committing secrets, and document non-obvious behavior in code comments sparingly.
| Issue | What to try |
|---|---|
command not found: node or npm |
Install Node.js LTS and restart your terminal |
EACCES or permission errors on npm install |
Avoid sudo; fix npm prefix or use nvm |
| Port already in use | Change PORT in .env or stop the process using that port |
| AI requests fail with 401/403 | Check AI_API_KEY in .env; ensure the key is valid and has quota |
Empty page after npm run dev |
Confirm you are in the repo root; check terminal for build errors |
On Windows, run commands in PowerShell or Git Bash from the project root.
This project is licensed under the MIT License — see LICENSE for details.