MOCRs (Massive Open Curiosity Rooms) is an innovative online platform designed to revolutionize learning through collaboration and curiosity. This dynamic platform allows users to engage in MOCRs, where they can explore various topics through real-time discussions facilitated by both human participants and soon - virtual AI talking avatars.
- To create a user-friendly web application that facilitates collaborative learning.
- To promote curiosity and lifelong learning among users of all ages and interests.
- To provide a platform where users can easily create, join, and participate in virtual learning rooms.
- To enhance learning experiences through the integration of AI assistants and gamified elements.
MOCRs are designed for lifelong learners and enthusiasts of all ages, including:
- Students seeking collaborative study environments.
- Hobbyists exploring new interests.
- History buffs, science enthusiasts, and other knowledge seekers.
- Anyone passionate about exploring new topics and engaging in meaningful discussions.
- Real-time Discussions: Users can engage in live discussions on various topics with other participants and AI avatars.
- AI Assistants: Virtual AI talking avatars facilitate discussions, provide information, and assist with resource management.
- Interactive Whiteboards: Shared whiteboards for brainstorming, note-taking, and collaborative problem-solving.
- Resource Sharing: Users can upload and share resources like documents, videos, and links within the rooms.
- Gamified Elements: Features like badges, quests, and leaderboards to motivate and reward active participation and knowledge sharing.
- Room Browsing: Users can browse live virtual rooms by topic or intention, such as “learn how to use AI,” “silent study together group,” or “meditation group.”
- Room Creation: Users can create their own rooms, either private (with controlled access) or public (open to anyone).
- Customization: Room creators can customize the room’s features, such as setting discussion rules, enabling/disabling certain tools, and more.
- Web Application: A functional web platform accessible via browsers.
- Live Virtual Rooms: Users can browse, join, and create virtual rooms.
- Real-time Interaction: Live chat and discussion tools within the rooms.
- Resource Sharing: Basic functionality for uploading and sharing resources.
- Framework: React
- Routing: React Router
- Real-time Communication: Jitsi SDK
- HTTP Client: Axios
- Package Manager: Vite
- Framework: Express.js
- Database: PostgreSQL
- Authentication: JSON Web Tokens (JWT)
- Environment Management: dotenv
- Miscellaneous: bcrypt, morgan, cors
- Jitsi React SDK: For real-time video and audio communication.
- Ensure the backend server is running:
cd backend node server.js - Ensure the frontend server is running:
cd frontend npm run dev
- Open your browser and navigate to
http://localhost:5173.
- Home Page: Browse available rooms or create a new one.
- Spaces: Join live spaces by clicking on the space card.
- Profile: Manage your user profile and settings.
- Login/Signup: Authenticate to access additional features like creating rooms.
- AllRoutes.jsx: Defines the routing for the application.
- SpaceList.jsx: Component to list and manage spaces.
- LiveSpace.jsx: Component for live space interaction using Jitsi.
- api.js: Handles API requests.
- app.js: Main application setup with middleware and routes.
- routes/roomRoutes.js: Routes for room-related operations.
- controllers/roomController.js: Controllers for room-related logic.
- middleware/auth.js: Middleware for authentication.
- middleware/rateLimiter.js: Middleware for rate limiting.
GET /api/rooms: Fetch all rooms.POST /api/rooms: Create a new room.GET /api/rooms/:id: Fetch a specific room by ID.POST /api/rooms/:id/join: Join a room.POST /api/rooms/:id/leave: Leave a room.
POST /api/auth/login: Authenticate a user.POST /api/auth/register: Register a new user.GET /api/users/:username: Fetch user details by username.PATCH /api/users/:username: Update user details.
POST /api/auth/jtoken: Create a Jitsi token for a user to join a room.
Table Name: users
Table Name: rooms
- Node.js
- npm or yarn
- PostgreSQL
git clone https://github.com/samiesmilz/mocrs.git
cd mocrs-
Navigate to the backend directory:
cd backend -
Install dependencies:
npm install
-
Create a
.envfile in the backend directory and add the necessary environment variables:DATABASE_URL=your_database_url JWT_SECRET=your_jwt_secret FRONTEND_URL=http://localhost:5173
-
Run the backend server:
node server.js
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Create a
.envfile in the frontend directory and add the necessary environment variables:BACKEND_URL=http://localhost:5001/api
-
Run the frontend development server:
npm run dev
MOCRs was created to address the need for more interactive, engaging, and collaborative online learning environments. By integrating real-time discussions, AI assistance, and gamified elements, MOCRs aims to make learning more dynamic and enjoyable, fostering a community of curious minds eager to explore and learn together.
For support or contributions, please contact:
- Email: samie@mocrs.com
- GitHub: MOCRs Repository







