A full-stack task management application built with Go (backend) and React (frontend).
Before you begin, ensure you have the following installed:
- Go (version 1.16 or higher)
- PostgreSQL (version 12 or higher)
- Node.js and npm (version 14 or higher)
A .gitignore file is included to ensure you do not upload sensitive or unnecessary files to GitHub. This includes:
node_modules/(frontend)build/ordist/folders.envfiles (for secrets and credentials)- System files like
.DS_Store - IDE/editor folders like
.vscode/,.idea/
-
Install PostgreSQL from the official website
-
During installation:
- Remember the password you set for the postgres user
- Make sure to install the command line tools (psql)
- The default port is 5432
-
Create the database using pgAdmin:
- Open pgAdmin 4
- Connect to your PostgreSQL server
- Right-click on "Databases"
- Select "Create" → "Database"
- Enter database name:
task_manager - Set owner as
postgres - Click "Save"
-
Navigate to the backend directory:
cd backend -
Install Go dependencies:
go mod tidy
-
Create a
.envfile in the backend directory with the following content:DATABASE_URL=postgres://postgres:<YOUR_PASSWORD>@localhost:5432/task_manager?sslmode=disable PORT=8080 ENV=development JWT_SECRET=your_jwt_secret_key JWT_EXPIRATION=24hReplace
<YOUR_PASSWORD>with your PostgreSQL password. If you use a different database/user/port, update accordingly. -
Run the backend server:
go run main.go
The server should start on
http://localhost:8080
-
Navigate to the frontend directory:
cd frontend -
Install npm dependencies:
npm install
-
Start the development server:
npm start
The frontend should start on
http://localhost:3000
- Make sure PostgreSQL is running
- Start the backend server (from the backend directory):
go run main.go
- Start the frontend development server (from the frontend directory):
npm start
- Open your browser and navigate to
http://localhost:3000
-
If you get a database connection error:
- Verify PostgreSQL is running
- Check if the database
task_managerexists - Verify your database credentials in the
.envfile
-
If you get dependency errors:
- For backend: Run
go mod tidyagain - For frontend: Delete
node_modulesfolder and runnpm installagain
- For backend: Run
-
If ports are already in use:
- Check if other applications are using ports 3000 or 8080
- Kill the processes using those ports or change the port configuration
task-manager/
├── backend/
│ ├── database/
│ ├── handlers/
│ ├── models/
│ └── main.go
└── frontend/
├── src/
├── public/
└── package.json
- Create, read, update, and delete tasks
- Task status management
- Due date tracking
- Task categorization
- User-friendly interface
- Backend: Go (Golang)
- Database: PostgreSQL
- Frontend: React
- API: RESTful