An anonymous bulletin board where users can post messages on a canvas that other users can see in real-time.
- 🎨 Interactive canvas for posting messages
- 💬 Real-time message updates using WebSocket
- 🎨 Customizable text colors
- 📱 Responsive design
- 🔄 Drag messages around the canvas
- 🗄️ Persistent message storage with PostgreSQL
- Node.js (v14 or higher)
- PostgreSQL database
- Install dependencies:
npm install- Create a
.envfile based on.env.example:
cp .env.example .env- Update the
.envfile with your PostgreSQL connection string:
DATABASE_URL=postgresql://user:password@localhost:5432/bulletin_board
- Create the PostgreSQL database:
createdb bulletin_board- Start the server:
npm startFor development with auto-reload:
npm run dev- Open your browser and navigate to
http://localhost:3000
- Push your code to a GitHub repository
- In Render.com dashboard:
- Click "New +" → "Blueprint"
- Connect your GitHub repository
- Render will automatically detect the
render.yamlfile - Click "Apply" to deploy
-
Create PostgreSQL Database:
- In Render.com dashboard, click "New +" → "PostgreSQL"
- Choose a name (e.g., "bulletin-board-db")
- Select the free plan
- Copy the "Internal Database URL"
-
Create Web Service:
- Click "New +" → "Web Service"
- Connect your GitHub repository
- Settings:
- Name: anonymous-bulletin-board
- Environment: Node
- Build Command:
npm install - Start Command:
npm start - Environment Variables:
NODE_ENV:productionDATABASE_URL: (paste the Internal Database URL from step 1)
- Click "Create Web Service"
-
Wait for deployment to complete!
- Click anywhere on the canvas to post a message
- Type your message in the modal
- Choose a text color (optional)
- Click "Post Message" or press Enter
- Your message will appear on the canvas and be visible to all users in real-time
- You can drag messages around the canvas to reposition them
- Backend: Node.js, Express
- Real-time: Socket.io
- Database: PostgreSQL
- Frontend: HTML5 Canvas, Vanilla JavaScript
- Deployment: Render.com
MIT