A web application for analyzing job posting trends and skill requirements.
Note: This README is a work in progress and will be updated as the project progresses. 3/25/25: see also: https://draftjs.org/docs/api-reference-content-state
job-trend-analyzer/
├── assets/ # Generated diagram images and other static assets
├── documents/ # Project documentation and architecture diagrams
│ ├── *.md # Markdown documentation files
│ └── *.mmd # Mermaid diagram source files
├── frontend/ # React frontend application
│ ├── public/ # Static public assets
│ └── src/
│ ├── assets/ # Frontend static assets
│ ├── components/ # React components
│ └── pages/ # Page components
└── backend/ # Node.js + Express backend
└── src/
├── controllers/ # Route controllers
├── db/ # Database configuration
├── models/ # Data models
└── routes/ # API routes
The project's architecture is documented using the C4 model approach, with diagrams created using Structurizer. The diagrams are stored in two formats:
- Backup code files (
.dsl) in thedocuments/directory - Saved PNG files in the
assets/directory
Future architecture diagram checklist review is available here.
- Node.js (v16 or higher)
- npm (v7 or higher)
-
Clone the repository:
git clone https://github.com/yourusername/job-trend-analyzer.git cd job-trend-analyzer -
Install dependencies:
npm install -
Set up environment variables:
- Copy
.env.exampleto.envin both frontend and backend directories - Update the values as needed
- Copy
-
Start the development servers:
npm run dev
This will start both the frontend and backend servers concurrently.
-
Create a new GitHub repository:
- Go to https://github.com/new
- Name your repository (e.g., "job-trend-analyzer")
- Choose public or private visibility
- Click "Create repository"
-
Push your local repository to GitHub:
git remote add origin https://github.com/yourusername/job-trend-analyzer.git git branch -M main git push -u origin main
-
Sign up or log in to Netlify: https://app.netlify.com/
-
Click "Add new site" > "Import an existing project"
-
Connect to your GitHub repository
-
Configure the build settings:
- Base directory:
frontend - Build command:
npm run build - Publish directory:
frontend/dist
- Base directory:
-
Add environment variables:
- VITE_API_URL: Your Railway backend URL (after setting up Railway)
-
Click "Deploy site"
-
After deployment, go to "Site settings" > "Domain management" to set up a custom domain if desired
-
Sign up or log in to Railway: https://railway.app/
-
Create a new project and select "Deploy from GitHub repo"
-
Connect to your GitHub repository
-
Add a PostgreSQL database service:
- Click "New" > "Database" > "PostgreSQL"
- This will create a new PostgreSQL instance
-
Configure the backend service:
- Root directory:
backend - Start command:
npm start
- Root directory:
-
Link the PostgreSQL service to your backend:
- In your backend service, go to "Variables"
- Railway automatically adds
DATABASE_URLwith the PostgreSQL connection string - Add additional environment variables:
- NODE_ENV:
production - PORT:
5000(or let Railway assign a port) - CORS_ORIGIN: Your Netlify frontend URL
- NODE_ENV:
-
After deployment, get your backend URL from the "Settings" tab
-
Update your Netlify frontend with the Railway backend URL as
VITE_API_URL
- Development: SQLite (file-based)
- Production: PostgreSQL (hosted on Railway)
The application automatically switches between SQLite and PostgreSQL based on the NODE_ENV environment variable.
GET /api/status: Check API statusGET /api/job-trends: Get all job trends