Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 30 additions & 91 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,93 +1,32 @@
# Contributing to EduBridge

Thank you for your interest in contributing to EduBridge! 🎉
We welcome meaningful contributions that improve the quality and usability of the project.

Please read the guidelines below carefully before contributing.

---

## 📌 Getting Started

1. Fork the repository to your GitHub account
2. Clone your fork locally:
```bash
git clone https://github.com/your-username/EduBridge.git
Create a new branch for your work:

git checkout -b feature/your-feature-name
🏷 Issue Selection
All issues are created and managed by the Project Admin

Contributors must request assignment before starting work

Do NOT work on unassigned issues

Only one contributor will be assigned per issue

Choose issues based on your skill level:

easy

medium

hard

good first issue

💻 Development Guidelines
Follow clean coding practices

Write readable and well-structured code

Comment your code where necessary

Ensure your changes do not break existing functionality

Test your changes before submitting

🔍 Pull Request Guidelines
PRs must be linked to an assigned issue

Clearly describe what your PR does

Keep PRs focused (one issue per PR)

Avoid unnecessary or unrelated changes

Plagiarized or copied code will be rejected

📝 Commit Message Guidelines
Use clear and meaningful commit messages. Examples:

Added quiz scoring functionality
Fixed authentication validation bug
Improved UI responsiveness
Avoid vague messages like:

fix
update
changes
❌ What Not to Do
Do not submit spam or low-effort PRs

Do not copy code from other repositories

Do not create issues without admin permission

Do not submit incomplete or broken features

✅ Review Process
All Pull Requests are reviewed by the Project Admin

Changes may be requested before approval

Only approved and merged PRs are considered valid contributions

Admin decisions are final

🤝 Code of Conduct
All contributors are expected to maintain respectful and professional communication.
Harassment, discrimination, or unethical behavior will not be tolerated.

Thank you for contributing and helping improve EduBridge! 🚀
Thank you for your interest in contributing to EduBridge! We welcome contributions that improve the quality and usability of the project.

## Table of Contents
- [Code of Conduct](#code-of-conduct)
- [How to Contribute](#how-to-contribute)
- [Development Setup](#development-setup)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Reporting Issues](#reporting-issues)

## Code of Conduct
Please read and follow our Code of Conduct to foster an inclusive community.

## How to Contribute
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

## Development Setup
1. Clone the repository
2. Open `index.html` in your browser for frontend changes
3. For backend changes, ensure Python and Flask are installed

## Pull Request Guidelines
- Keep PRs focused on a single change
- Include a clear description
- Reference related issues

## Reporting Issues
Use the GitHub issue tracker to report bugs or request features.
32 changes: 32 additions & 0 deletions Styles/auth.css
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,38 @@
margin-top: 0.25rem;
}

/* Password Visibility Toggle */
.password-wrapper {
position: relative;
display: flex;
align-items: center;
}

.password-wrapper input {
width: 100%;
padding-right: 2.5rem;
}

.password-toggle {
position: absolute;
right: 0.5rem;
background: none;
border: none;
cursor: pointer;
color: var(--text);
padding: 0.25rem;
font-size: 1.1rem;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.6;
transition: opacity 0.2s;
}

.password-toggle:hover {
opacity: 1;
}

/* Responsive Design */
@media (max-width: 480px) {
.auth-card {
Expand Down
34 changes: 34 additions & 0 deletions Styles/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -1138,6 +1138,40 @@ ul li i.fa-check {
color: var(--light-text);
}

/* Scroll to Top Button */
#scrollToTop {
position: fixed;
bottom: 2rem;
right: 2rem;
width: 44px;
height: 44px;
background: var(--secondary-color);
color: white;
border: none;
border-radius: 50%;
cursor: pointer;
font-size: 1.25rem;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
opacity: 0;
visibility: hidden;
transform: translateY(10px);
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, background 0.3s ease;
z-index: 999;
}

#scrollToTop.visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}

#scrollToTop:hover {
background: var(--primary-color);
}

/* Responsive Modal */
@media (max-width: 768px) {
.modal-content {
Expand Down
18 changes: 17 additions & 1 deletion admin.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>EduBridge Admin Dashboard</title>
<title>EduBridge | Admin</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Fraunces:wght@500;700&family=Space+Grotesk:wght@400;500;600&display=swap" rel="stylesheet" />
Expand Down Expand Up @@ -317,8 +317,24 @@ <h3>Follow Us</h3>

<div class="toast-container" id="toastContainer" aria-live="polite" aria-atomic="true"></div>

<button id="scrollToTop" aria-label="Scroll to top"><i class="fas fa-arrow-up"></i></button>

<script src="scripts/content-data.js"></script>
<script src="scripts/quiz-data.js"></script>
<script src="scripts/admin.js"></script>
<script>
// Scroll to Top
const scrollBtn = document.getElementById('scrollToTop');
window.addEventListener('scroll', () => {
if (window.scrollY > 300) {
scrollBtn.classList.add('visible');
} else {
scrollBtn.classList.remove('visible');
}
});
scrollBtn.addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>
</body>
</html>
17 changes: 16 additions & 1 deletion ai.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AI & Machine Learning - EduBridge</title>
<title>EduBridge | AI Assistant</title>
<!-- CSS Dependencies -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"/>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.4/dist/aos.css"/>
Expand Down Expand Up @@ -474,6 +474,21 @@ <h3>Follow Us</h3>
closeVideo();
}
}

// Scroll to Top
const scrollBtn = document.getElementById('scrollToTop');
window.addEventListener('scroll', () => {
if (window.scrollY > 300) {
scrollBtn.classList.add('visible');
} else {
scrollBtn.classList.remove('visible');
}
});
scrollBtn.addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>

<button id="scrollToTop" aria-label="Scroll to top"><i class="fas fa-arrow-up"></i></button>
</body>
</html>
17 changes: 16 additions & 1 deletion career.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Career Guidance - EduBridge</title>
<title>EduBridge | Career Guidance</title>
<!-- CSS Dependencies -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"/>
<link rel="stylesheet" href="https://unpkg.com/aos@2.3.4/dist/aos.css"/>
Expand Down Expand Up @@ -516,6 +516,21 @@ <h3>Follow Us</h3>
closeVideo();
}
}

// Scroll to Top
const scrollBtn = document.getElementById('scrollToTop');
window.addEventListener('scroll', () => {
if (window.scrollY > 300) {
scrollBtn.classList.add('visible');
} else {
scrollBtn.classList.remove('visible');
}
});
scrollBtn.addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>

<button id="scrollToTop" aria-label="Scroll to top"><i class="fas fa-arrow-up"></i></button>
</body>
</html>
Loading