A multi-stack portfolio project showcasing hands-on labs from the Coursera Generative AI specialization. This repository contains implementations across different technology stacks: JavaScript (Node.js + Express), Python, and Java (Spring Boot).
coursera-gen-ai/
├── chatgpt-chatbot/ # Node.js chatbot using OpenAI ChatGPT API
├── gemini-chatbot-node/ # Node.js chatbot using Google Gemini API
├── gemini-chatbot-python/ # Python Flask chatbot using Google Gemini API
├── learning-platform-backend/ # Node.js backend API for learning platform (modular monolith)
...
└── (future) other-projects/ # Any stack (Java Spring Boot?) project
- Stack: Node.js + Express
- Description: Interactive web-based chatbot powered by Google Gemini API
- Folder:
gemini-chatbot-node/ - Setup: See
gemini-chatbot-node/README.md
- Stack: Node.js + Express
- Description: Interactive web-based chatbot powered by OpenAI ChatGPT API
- Folder:
chatgpt-chatbot/ - Setup: See
chatgpt-chatbot/README.md
- Stack: Python + Flask
- Description: Interactive web-based chatbot powered by Google Gemini API, implemented in Python for beginners. Features a Flask backend and static frontend.
- Folder:
gemini-chatbot-python/ - Setup: See
gemini-chatbot-python/README.md
- Stack: Node.js + Express + MongoDB
- Description: Backend API for personalized online learning platform. Built as modular monolith with service modules (user-management, course-management, enrollment, learning) that can be extracted to microservices.
- Folder:
learning-platform-backend/ - Setup: See
learning-platform-backend/README.md
- Node.js (v16+) and pnpm (v8+) for JavaScript projects
- Python (v3.8+) for Python projects
- Java (v11+) for Java projects
- VSCode with appropriate extensions (see profiles below)
Each project is self-contained. To run a project:
- Navigate to the project folder:
cd gemini-chatbot-node
2. Follow the setup instructions in that project's `README.md`
## VSCode Setup
This repository uses VSCode Profiles and Workspace configuration for multi-stack development. See `.coursera-gen-ai.code-workspace` for workspace configuration.
### Available Profiles
- **JavaScript Profile**: Extensions and settings for Node.js projects
- **Python Profile**: Extensions and settings for Python projects
- **Java Profile**: Extensions and settings for Spring Boot projects
## Environment Variables
Each project requires sensitive data (API keys, etc.) stored in `.env` files. These are **git-ignored** for security.
- Copy `.env.example` to `.env` in the project folder
- Add your API keys and credentials to `.env`
- Never commit `.env` files
Example:
```bash
cd gemini-chatbot-node
cp .env.example .env
# Edit .env with your Gemini API key
- All
.envfiles are ignored by git - API keys, passwords, and tokens are never committed
- Use
.env.exampleas a template to document required variables - For remote credential storage, consider:
- GitHub Secrets (for CI/CD)
- 1Password, LastPass (personal credential managers)
- Azure Key Vault, AWS Secrets Manager (production environments)
These projects are part of a learning portfolio and are provided as-is.
Renato P B
Note: This repository is actively being updated with additional labs and projects.