Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vidmal001/devlink
A Collaborative Learning & Interview Preparation Platform
https://github.com/vidmal001/devlink
axios bcrypt editorjs expressjs framer-motion jwt monaco-editor mongodb nodejs react-router-dom reactjs tailwind-css
Last synced: 14 days ago
JSON representation
A Collaborative Learning & Interview Preparation Platform
- Host: GitHub
- URL: https://github.com/vidmal001/devlink
- Owner: vidmal001
- Created: 2024-03-27T20:29:33.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-10-05T12:10:12.000Z (4 months ago)
- Last Synced: 2024-11-16T06:19:13.570Z (3 months ago)
- Topics: axios, bcrypt, editorjs, expressjs, framer-motion, jwt, monaco-editor, mongodb, nodejs, react-router-dom, reactjs, tailwind-css
- Language: JavaScript
- Homepage:
- Size: 1.83 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [DevLink: A Collaborative Learning & Interview Preparation Platform](#DevLink)
## 📋 [Table of Contents](#table-of-contents)
1. 🤖 [Introduction](#introduction)
2. ⚙️ [Tech Stack](#tech-stack)
3. 🔋 [Features](#features)
4. 🤸 [Quick Start](#quick-start)## 🤖 [Introduction](#introduction)
DevLink is a web application designed to address key challenges faced by computing students in Sri Lanka. It facilitates collaborative learning and enhances interview preparation through features like role-based authentication, blog posting, nested comments, an interactive notification system, and an interview preparation module with a built-in code editor. The platform bridges the gap between academia and industry by fostering knowledge sharing and mentorship, making it easier for students to connect, learn, and succeed in their career journey.## ⚙️ [Tech Stack](#tech-stack)
- **Frontend**: React.js
- **Backend**: Node.js with Express
- **Database**: MongoDB
- **Styling**: Tailwind CSS## 🔋 [Features](#features)
👉 **User Authentication & Role-based Access**: Secure account creation and login system with different functionalities based on user roles (students, lecturers, etc.).👉 **Profile Customization**: Users can view, edit, and manage their profiles, displaying their blogs, questions, and personal information.
👉 **Content Interaction**: Users can post blogs and questions, leave comments, and engage in discussions using a nested comment system with upvote and downvote features.
👉 **Rich Content Editor**: A dynamic blog editor that supports images, code snippets, fonts, quotes, and previews.
👉 **Interview Preparation Module**: This module allows lecturers to add new questions and includes features such as a code editor, timed sessions, and filters for browsing questions by category and company.
👉 **Performance Tracking**: Students can track their progress, view leaderboards, and monitor their submissions.
👉 **Notification System**: Receive notifications when users interact with your posts (comments, likes, etc.).
👉 **Light and Dark Themes**: Switch between light and dark modes for a personalized user experience.
and many more..
## 🤸 [Quick Start](#quick-start)
Make sure you have the following installed on your machine:
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [npm](https://www.npmjs.com/) (Node Package Manager)
- [Python](https://www.python.org/downloads/). Install Python 3.x from the official website. Ensure Python is added to your system's PATH.
1. **Clone the repository**:
```bash
git clone https://github.com/vidmal001/DevLink.git
```2. **Navigate to the client folder**:
```bash
cd client
```3. **Install the client dependencies**:
```bash
npm install
```4. **Navigate to the server folder**:
```bash
cd server
```5. **Install the server dependencies**:
```bash
npm install
```6. **Set up environment variables**:
**Client Side (.env)**:
- Navigate to the `client` folder.
- Create a file named `.env` in the root.
- Add the following line:
```env
VITE_SERVER_DOMAIN = http://localhost:3000
```**Server Side (.env)**:
- Navigate to the `server` folder.
- Create a file named `.env` in the root.
- Add the following:
```env
DB_LOCATION = mongodb+srv://:@cluster0.mongodb.net/?retryWrites=true&w=majority
SECRET_ACCESS_KEY =
```
**How to Generate and Add a Secret Access Key for JWT**
- Generate a Secure Key: You can generate a secure secret access key using a secure password generator tool like [passwordsgenerator.net](https://passwordsgenerator.net) or by running the following command in your terminal:
```bash
openssl rand -hex 64
```7. **Run the client**:
```bash
npm run dev
```8. **Run the server**:
```bash
npm start
```Now the application should be running at [http://localhost:5173](http://localhost:5173).