A professional project task management web application built with Node.js, Express, and PostgreSQL. This project is prepared for Railway PaaS deployment and includes full CRUD, secure environment management, and a clean UX.
- Deployed app URL: (add your Railway URL after deployment)
- Source code repo: (your GitHub link)
- Database schema + sample data:
schema.sql+ seed example in docs - Documentation report:
RAILWAY_REPORT.md(2–3 pages reflect deployment, challenges, comparison)
- Application deployment on Railway:
index.js,Procfile, Railway config - Environment configuration:
.env.example, secureDATABASE_URLusage - Database integration:
schema.sql, PostgreSQL methods in backend - Scalability awareness: section below
- CI/CD workflow: Railway GitHub integration recommended
- Monitoring/logging: Railway logs (see
RAILWAY_REPORT.md) - Documentation/reflection: this README + report file
- Create, read, update, and delete tasks
- Track task status (pending, in-progress, completed)
- Clean and responsive UI
- RESTful API architecture
- PostgreSQL database with Row Level Security
- Backend: Node.js, Express.js
- Database: PostgreSQL (Supabase)
- Frontend: HTML, CSS, JavaScript (vanilla)
- Node.js (v14 or higher)
- PostgreSQL database (or Supabase account)
-
Clone the repository
-
Install dependencies:
npm install- Create a
.envfile based on.env.example:
cp .env.example .env- Update the
.envfile with your database connection string:
DATABASE_URL=your_postgresql_connection_string
PORT=3000
NODE_ENV=development
- Set up the database schema:
psql $DATABASE_URL -f schema.sql- Start the application:
node index.jsThe application will be available at http://localhost:3000
GET /health- Health check endpointGET /api/tasks- Get all tasksPOST /api/tasks- Create a new taskPUT /api/tasks/:id- Update a taskDELETE /api/tasks/:id- Delete a task
-
Create a new project on Railway
-
Add a PostgreSQL database to your project
-
Connect your GitHub repository
-
Railway will automatically detect the
Procfileand deploy your application -
Add the
DATABASE_URLenvironment variable (Railway automatically provides this when you add PostgreSQL) -
Your app will be live at the provided Railway URL
DATABASE_URL- PostgreSQL connection stringPORT- Port number (default: 3000)NODE_ENV- Environment (development/production)
.
├── index.js # Express server and API endpoints
├── public/
│ ├── index.html # Main HTML file
│ ├── styles.css # CSS styling
│ └── app.js # Frontend JavaScript
├── schema.sql # Database schema
├── .env.example # Environment variables template
├── Procfile # Railway deployment configuration
├── package.json # Node.js dependencies
└── README.md # This file
MIT