A full-stack Kanban board application with secure JWT authentication.
- User authentication with JWT
- Protected routes and API endpoints
- Secure password hashing
- Persistent data storage with PostgreSQL
- Responsive design with CSS modules
- Real-time task management
- Frontend:
- React
- TypeScript
- CSS Modules
- Vite
- Backend:
- Node.js
- Express
- PostgreSQL
- Sequelize ORM
- JWT for authentication
- Node.js
- PostgreSQL
- npm or yarn
- Clone the repository:
git clone https://github.com/ReplicantCoder9000/JWT.git
cd JWT
- Install dependencies for both client and server:
# Install server dependencies
cd server
npm install
# Install client dependencies
cd ../client
npm install
-
Set up environment variables:
- Copy
.env.EXAMPLE
to.env
in the server directory - Update the following variables:
DB_NAME='kanban_db' DB_USER='postgres' DB_PASSWORD='your_password' JWT_SECRET_KEY='your_secret_key'
- Copy
-
Create and seed the database:
# Create database
psql -U postgres -f db/schema.sql
# Run migrations and seeds
cd server
npm run seed
- Start the server:
cd server
npm run dev
- Start the client in a new terminal:
cd client
npm run dev
- Access the application at
http://localhost:3000
- Username: JollyGuru
- Password: password
The application is split into frontend and backend deployments:
- Connect your GitHub repository to Netlify
- Configure build settings:
- Build command:
cd client && npm install && npm run build
- Publish directory:
client/dist
- Build command:
- Set environment variables in Netlify:
VITE_API_URL
: Your backend API URL
- Create a new project in Railway
- Add a PostgreSQL database
- Deploy the Node.js backend:
- Connect your GitHub repository
- Set build command:
cd server && npm install && npm run build
- Start command:
cd server && npm start
- Set environment variables in Railway:
DB_NAME=railway DB_USER=postgres DB_PASSWORD=your_railway_db_password JWT_SECRET_KEY=your_secret_key
- Get your database connection details from Railway and update the environment variables
If Railway's free tier is unavailable, consider:
- Fly.io - Offers a generous free tier
- Render - Basic free tier available
- Heroku - Paid options available
- Railway PostgreSQL (included with Railway deployment)
- Supabase - Generous free tier with additional features
- ElephantSQL - Free PostgreSQL hosting
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License.