FireTech-Message-server / GETTING-STARTED.md
Dhurgh's picture
fixed infinite loop and memory leak
55a57c5
|
Raw
History Blame Contribute Delete
5.47 kB

Getting Started - Step by Step

Prerequisites

  • Node.js (https://nodejs.org/) - Download LTS version
  • MongoDB - Either local or cloud (MongoDB Atlas)

Step 1: Prepare Your Environment

Install Node.js Dependencies

Open PowerShell in your project folder and run:

npm install

This installs all required packages:

  • express (web framework)
  • socket.io (real-time communication)
  • mongoose (database ORM)
  • jsonwebtoken (authentication)
  • bcryptjs (password hashing)
  • And more...

Step 2: Set Up MongoDB

Option A: Local MongoDB

  1. Download MongoDB Community Edition: https://www.mongodb.com/try/download/community
  2. Install it (use default settings)
  3. MongoDB will start automatically
  4. Your connection string: mongodb://localhost:27017/discord-app

Option B: MongoDB Atlas (Cloud)

  1. Go to https://www.mongodb.com/cloud/atlas
  2. Sign up for free account
  3. Create a cluster
  4. Click "Connect"
  5. Copy the connection string
  6. Replace <password> with your password

Step 3: Configure Environment

  1. Edit the .env file in your project root:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/discord-app
JWT_SECRET=MySecretKey123!
  1. Replace MONGODB_URI with your MongoDB connection string

Step 4: Initialize Database (Optional)

Add sample shop items:

npm run init-db

This creates default shop items in your database.

Step 5: Start the Server

Development (with auto-reload):

npm run dev

Production:

npm start

You should see:

╔═══════════════════════════════════════╗
β•‘   Discord-Like Server Running     β•‘
β•‘                                       β•‘
β•‘    Local: http://localhost:3000    β•‘
β•‘    Status: Online & Ready          β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Step 6: Access the App

Open your browser and go to:

http://localhost:3000

First Time Account Setup

  1. Click "Register" (first time)
  2. Enter:
    • Username (e.g., "john_doe")
    • Email (e.g., "john@example.com")
    • Password (minimum 6 characters)
  3. Click "Create Account"
  4. You're logged in!

Test the Features

1. Send Messages

  • Type in the message box
  • Press Enter to send
  • Messages appear in real-time

2. Upload Media

  • Click the attachment icon (πŸ“Ž)
  • Select an image or video
  • It appears in the chat

3. Profile

  • Click profile icon (top right)
  • Edit username and bio
  • Click "Save Profile"

4. Friends

  • Click Friends icon (πŸ‘₯)
  • See online members
  • Accept friend requests

5. Shop

  • Click Shop icon (πŸͺ)
  • Browse items for sale
  • Buy with coins (1000 starting coins)
  • Check inventory in profile

Troubleshooting

Port 3000 Already In Use

Change in .env:

PORT=8080

MongoDB Connection Error

  1. Make sure MongoDB is running
  2. Check MONGODB_URI in .env is correct
  3. If using local: mongod command starts it
  4. If using Atlas: Check connection string has correct password

App Won't Load

  1. Check server is running (see console output)
  2. Check localhost:3000 is being accessed
  3. Press Ctrl+F5 to hard refresh browser
  4. Check browser console (F12) for errors

Can't Upload Files

  1. Check file size < 50MB
  2. Try PNG or JPG (not all formats supported)
  3. Clear browser cache
  4. Check file type (image/* or video/*)

File Structure

πŸ“ message-app/
β”œβ”€β”€ πŸ“„ server.js          ← Backend (API & WebSockets)
β”œβ”€β”€ πŸ“„ client.js          ← Frontend JavaScript
β”œβ”€β”€ πŸ“„ index.html         ← Frontend HTML/CSS
β”œβ”€β”€ πŸ“„ package.json       ← Dependencies list
β”œβ”€β”€ πŸ“„ .env               ← Configuration (you create this)
β”œβ”€β”€ πŸ“„ init-db.js         ← Database initializer
β”œβ”€β”€ πŸ“„ SETUP-GUIDE.md     ← Detailed setup guide
β”œβ”€β”€ πŸ“„ FEATURES.md        ← Features documentation
└── πŸ“„ README.md          ← Original readme

Command Reference

npm install              
npm start                
npm run dev             
npm run init-db          
npm run https           

Environment Variables

In .env file:

PORT=3000                              # Server port
MONGODB_URI=mongodb://...              # Database URL
JWT_SECRET=your_secret_key             # JWT signature key
CORS_ORIGIN=*                          # Allowed origins
NODE_ENV=development                   # dev or production

Next Steps

To Customize:

  1. Edit colors in index.html (CSS variables in :root)
  2. Add more channels in client.js (showChannel function)
  3. Add more shop items (modify init-db.js)
  4. Change server name: Edit sidebar header in HTML

To Deploy:

  1. Use Heroku, Railway, or Render
  2. Set environment variables in hosting platform
  3. Use MongoDB Atlas (not local)
  4. Add HTTPS certificates
  5. Update CORS_ORIGIN to your domain

To Extend:

  • Add direct messaging
  • Add voice/video (WebRTC)
  • Add message reactions
  • Add roles and permissions
  • Add server administration

Getting Help

  1. Check SETUP-GUIDE.md for detailed instructions
  2. Check FEATURES.md for feature list
  3. Check browser console (F12) for errors
  4. Check server console output
  5. Try resetting browser cache (Ctrl+Shift+Delete)

Enjoy your Discord-like chat application! πŸŽ‰