Campus Bridge is a modern and lightweight LMS (Learning Management System) tailored for educational institutions, students, and self-paced learners. Built with simplicity, scalability, and beauty in mind.
π Demo Link
For a complete deployment with both frontend and backend functionality, we recommend Render which supports Node.js applications with database connectivity.
Important: Campus Bridge requires an external MySQL database.
If you're looking for completely free MySQL hosting options:
-
FreeSQLDatabase.com (Completely free)
- No payment required
- No SSL support
- Database may sleep after inactivity
- Limited resources
- Setup guide: FREESQLDATABASE_SETUP_GUIDE.md
-
PlanetScale (Free tier with limitations)
- Free with some limitations
- SSL support
- Good performance
- Setup guide: PLANETSCALE_SETUP_GUIDE.md
-
Railway (Credit-based free option)
- $5/month credit (usually sufficient for small apps)
- Good performance
- Setup guide: RAILWAY_SETUP_GUIDE.md
Before deploying to Render, you need to set up a MySQL database using FreeSQLDatabase.com:
- Follow the guide in FREESQLDATABASE_SETUP_GUIDE.md
- Get your database connection details
- Use these details when configuring environment variables in Render
After setting up your MySQL database, configure these environment variables in Render:
MYSQL_HOST- Your MySQL hostnameMYSQL_USER- Your MySQL usernameMYSQL_PASSWORD- Your MySQL passwordMYSQL_DATABASE- Your database nameMYSQL_PORT- 3306 (or your provider's port)MYSQL_SSL- Set to "false" only if using FreeSQLDatabase.comEMAIL_SERVICE- GmailEMAIL_USER- Your Gmail addressEMAIL_PASS- Your Gmail app passwordEMAIL_FROM- Your Gmail addressAPP_URL- https://campus-bridge-lms.onrender.com
See RENDER_ENV_VARIABLES.md for detailed instructions.
If you're using FreeSQLDatabase.com, follow the specific deployment guide:
For the complete experience, run the application locally:
git clone https://github.com/Codeunia/Campus-Bridge.git
cd Campus-Bridge
npm install
npm startAfter deployment, you can check your database status at /db-status.html
If you encounter database connection issues, see DATABASE_TROUBLESHOOTING.md
| Layer | Tech Used |
|---|---|
| Frontend | HTML, CSS, Bootstrap Icons, JavaScript |
| Backend | Node.js, Express.js |
| Database | MySQL |
| API Client | Postman (for testing) |
- π Upload and manage lecture PDFs
- π Dynamic lecture card generation
- π Open lecture PDFs directly from browser
- π§ͺ REST API support (Tested with Postman)
- β‘ Smooth integration between frontend & backend
- β¨ Modern UI with responsive design
- π§Ύ Organized by subject/topic
- π User authentication and session management
- π€ User registration and login
- π« Protected routes for authenticated users only
- π€ Shakthi Bot - AI assistant for website navigation
CampusBridge-LMS/
β
βββ public/ # Frontend files
β βββ index.html # Main UI page
β βββ script.js # Dynamic JS logic
β βββ shakti-bot.js # Shakthi Bot AI assistant
β βββ *.html # All HTML pages with integrated Shakthi Bot
β
βββ uploads/ # Uploaded PDF files
β
βββ server.js # Main Express server
βββ db.js # MySQL connection
βββ middleware.js # Authentication middleware
βββ init-db.js # Database initialization script
βββ README.md # Project documentation
βββ AUTHENTICATION_SETUP.md # Authentication system documentation
βββ GOOGLE_ANALYTICS_SETUP.md # Google Analytics implementation guide
βββ SHAKTHI_BOT_GUIDE.md # Comprehensive Shakthi Bot implementation guidegit clone https://github.com/Codeunia/Campus-Bridge.git
cd Campus-Bridgenpm install express mysql multer corsOpen MySQL Workbench or Terminal and run:
CREATE DATABASE lms;
USE lms;
CREATE TABLE learning_resources (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
file_path VARCHAR(255) NOT NULL
);
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Insert a test user
INSERT INTO users (name, email, password) VALUES ('Test User', '[email protected]', 'password123');Make sure your local MySQL is running and matches your db.js config.
npm startOr for development:
npm run devCampus Bridge now includes a full authentication system with:
- User registration
- User login/logout
- Session management
- Protected routes
For detailed information about the authentication system, see AUTHENTICATION_SETUP.md.
After running npm run init-db, a test user will be created:
- Email: [email protected]
- Password: password123
Campus Bridge now sends email confirmations after successful user login. For setup instructions, see EMAIL_CONFIRMATION_SETUP.md.
POST http://localhost:3000/upload
Form-data:
titleβ Lecture Title (Text)pdfβ Upload PDF file (File)
GET http://localhost:3000/resources
POST http://localhost:3000/api/register
{
"name": "User Name",
"email": "[email protected]",
"password": "userpassword"
}POST http://localhost:3000/api/login
{
"email": "[email protected]",
"password": "userpassword"
}http://localhost:8080/- β User login/signup
- β Tag lectures by subject/branch
- β YouTube integration
- β Admin dashboard
- β Protected routes
- β Session management
- β Shakthi Bot AI assistant
- β Email confirmation after login
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License.
Made with π€ by Manogna Samayam & Monika Gamakonda Kumar Raja.
Let knowledge flow freely.
This project is licensed under the MIT License - see the LICENSE file for details.
