Dialectica is a real-time web application designed to facilitate structured debates and discussions. It enables users to engage in meaningful conversations with a moderated format, supporting both participants and administrators.
- Features
- Tech Stack
- Getting Started
- Configuration
- Deployment
- Project Structure
- License
- Contributing
- Community & Support
- User Authentication: Secure registration and login using JWT.
- Admin Dashboard: Manage users, debates, and platform settings.
- Debate Rooms: Real-time, moderated debate environments.
- User Profiles: Customizable profiles with statistics and achievements.
- Real-time Messaging: Instant communication via Socket.io.
- Responsive Design: Optimized for desktop and mobile.
- Statistics Tracking: User performance and engagement metrics.
- Backend: Node.js, Express.js
- Database: MongoDB (via Mongoose)
- Frontend: HTML, CSS, JavaScript, Bootstrap
- Real-time: Socket.io
- Authentication: JWT
- Node.js (v14+ recommended)
- npm
- MongoDB (local or Atlas)
-
Clone the repository
git clone https://github.com/yourusername/dialectica.git cd dialectica -
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root directory:JWT_SECRET=your_jwt_secret MONGODB_URI=your_mongodb_connection_string PORT=5000 -
Start the application
npm start
-
Development mode (auto-restart)
npm run dev
- Database: Update
MONGODB_URIin.envfor your MongoDB connection. - JWT Secret: Set a strong secret in
JWT_SECRET. - Port: Default is
5000, can be changed in.env.
Dialectica can be deployed on:
- Render: Free tier, GitHub integration.
- Railway: $5 free credit/month.
- Fly.io: Free tier with multiple VMs.
- MongoDB Atlas: Free cloud database.
See platform documentation for deployment steps.
Diel-MERN/
├── config/ # Database configuration
├── middleware/ # Auth and admin middleware
├── models/ # Mongoose models (User, UserStats)
├── public/ # Static frontend files (HTML, CSS, JS, images)
├── routes/ # Express route handlers
├── server.js # Main server entry point
├── package.json # Project metadata and scripts
└── README.md # Project documentation
Boost Software License - Version 1.0 - August 17th, 2003
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a new branch
git checkout -b feature/your-feature
- Commit your changes
git commit -m "Add your feature" - Push to your branch
git push origin feature/your-feature
- Open a Pull Request on GitHub
- Write clear, descriptive commit messages.
- Follow existing code style and conventions.
- Add tests for new features when possible.
- Document your changes in the README if relevant.
Join our Discord server for help, discussions, and collaboration:
Discord: https://discord.gg/uc2AHnBd
GSSoC 25 contributors and mentors are welcome for better coordination and communication.
-
Clone the repository
git clone https://github.com/yourusername/dialectica.git cd dialectica -
Install dependencies
npm install -
Create a
.envfile in the root directory with the following variables:JWT_SECRET=your_jwt_secret MONGODB_URI=your_mongodb_connection_string PORT=5000 -
Start the application
npm start -
For development with auto-restart:
npm run dev
This application can be deployed on various platforms:
- Render: Free tier with automatic deployments from GitHub
- Railway: Simple deployment with $5 free credit per month
- Fly.io: Free tier with 3 shared-cpu-1x 256mb VMs
For the database, MongoDB Atlas provides a free tier that works well with this application.
Boost Software License - Version 1.0 - August 17th, 2003
We welcome contributions to CreateMVP! Here's how you can contribute:
- Fork the repository
- Create a new branch for your feature (git checkout -b feature/amazing-feature)
- Commit your changes (git commit -m 'Add some amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
GSSoC 25 contributors and mentors . please join my dc server for better coordination and communication .
link : https://discord.gg/uc2AHnBd