- Updated .env.example and .env files for backend and frontend with placeholder values. - Enhanced .gitignore to include additional files and directories. - Modified docker-compose.yml to change image names and improve service health checks. - Updated README.md and SETUP_THE_PROJECT.md for clearer setup instructions. - Added database initialization scripts and SQL files for structured database setup. - Updated frontend Dockerfile to use Node.js 22 and adjusted package.json scripts. - Improved error handling and logging in start scripts for better debugging. - Added reCAPTCHA support in the signup page with conditional loading based on environment variables.
2.8 KiB
Worklenz Backend
This is the Express.js backend for the Worklenz project management application.
Getting Started
Follow these steps to set up the backend for development:
-
Configure Environment Variables:
- Create a copy of the
.env.examplefile and name it.env. - Update the required fields in
.envwith your specific configuration.
- Create a copy of the
-
Set up Database:
- Create a new database named
worklenz_dbon your local PostgreSQL server. - Update the database connection details in your
.envfile. - Execute the SQL setup files in the correct order:
# From your PostgreSQL client or command line psql -U your_username -d worklenz_db -f database/sql/0_extensions.sql psql -U your_username -d worklenz_db -f database/sql/1_tables.sql psql -U your_username -d worklenz_db -f database/sql/indexes.sql psql -U your_username -d worklenz_db -f database/sql/4_functions.sql psql -U your_username -d worklenz_db -f database/sql/triggers.sql psql -U your_username -d worklenz_db -f database/sql/3_views.sql psql -U your_username -d worklenz_db -f database/sql/2_dml.sql psql -U your_username -d worklenz_db -f database/sql/5_database_user.sqlAlternatively, you can use the provided shell script:
# Make sure the script is executable chmod +x database/00-init-db.sh # Run the script (may need modifications for local execution) ./database/00-init-db.sh - Create a new database named
-
Install Dependencies:
npm install -
Run the Development Server:
npm run devThis starts the development server with hot reloading enabled.
-
Build for Production:
npm run buildThis will compile the TypeScript code into JavaScript for production use.
-
Start Production Server:
npm start
API Documentation
The API endpoints are organized into logical controllers and follow RESTful design principles. The main API routes are prefixed with /api/v1.
Authentication
Authentication is handled via JWT tokens. Protected routes require a valid token in the Authorization header.
File Storage
The application supports both S3-compatible storage and Azure Blob Storage for file uploads. Configure your preferred storage option in the .env file.
Development Guidelines
- Code should be written in TypeScript
- Follow the established patterns for controllers, services, and middlewares
- Add proper error handling for all API endpoints
- Write unit tests for critical functionality
- Document API endpoints with clear descriptions and examples
Running Tests
npm test
Docker Support
The backend can be run in a Docker container. See the main project README for Docker setup instructions.