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
85 changes: 52 additions & 33 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,78 @@
# Contributor Covenant Code of Conduct
# StudyMatePlus Code of Conduct

## 👥 Our Pledge
## Our commitment

We as members, contributors, and leaders pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
StudyMatePlus is built to help students learn, collaborate, and share academic resources. To keep this community helpful and welcoming, everyone who participates in the project must treat others with respect, professionalism, and care.

We commit to acting and interacting in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
We are committed to providing a harassment-free experience for everyone, regardless of age, ability, background, ethnicity, gender identity or expression, education level, nationality, religion, appearance, socioeconomic status, sexual orientation, or experience level.

---
## Expected behavior

## 💬 Our Standards
We expect all contributors, maintainers, and community members to:

Examples of behavior that contributes to a positive environment include:
- Be respectful, patient, and considerate in all interactions
- Use inclusive, clear, and constructive language
- Welcome feedback and respond to criticism professionally
- Focus on the project and the community, not on personal differences
- Respect the privacy, boundaries, and safety of others
- Support a collaborative environment where people can ask questions and learn

- Being respectful and considerate toward others
- Using inclusive and welcoming language
- Accepting constructive criticism gracefully
- Focusing on what is best for the community
- Showing empathy towards others
## Unacceptable behavior

Examples of unacceptable behavior include:
The following behaviors are not acceptable in any project space:

- Harassment, bullying, or discrimination of any kind
- Publishing others' private information (e.g., addresses, contacts) without permission
- Trolling, insulting or derogatory comments
- Personal or political attacks
- Disruptive or disrespectful communication
- Harassment, intimidation, threats, stalking, or bullying
- Discrimination or offensive comments based on personal identity or background
- Sexualized language, imagery, or attention
- Trolling, insulting remarks, or repeated disruptive behavior
- Publishing another person’s private information without permission
- Personal attacks, political attacks, or other hostile commentary
- Deliberately derailing discussions or making participation difficult for others

---
## Where this applies

## 📢 Enforcement Responsibilities
This Code of Conduct applies in all StudyMatePlus spaces, including:

Project admins and maintainers are responsible for clarifying and enforcing this code of conduct. They will take appropriate and fair corrective action in response to any behavior they deem inappropriate or harmful.
- GitHub issues and pull requests
- Discussions, reviews, and comments
- Chat or community channels connected to the project
- Any event, meeting, or public interaction related to the project

---
## Maintainer responsibilities

## 🚫 Enforcement
Project maintainers are responsible for upholding this Code of Conduct and for responding to reports in a fair, consistent, and timely manner.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project team at:
When reviewing reports, maintainers should:

- Listen carefully and treat reports seriously
- Protect the privacy of the person reporting the issue
- Investigate concerns fairly and without bias
- Take action that is appropriate to the situation

## Reporting a concern

If you experience or witness behavior that violates this Code of Conduct, please report it to the project team at:

📧 lovelymahour1405@gmail.com

All complaints will be reviewed and investigated promptly and fairly.
Please include as much relevant detail as possible, such as the date, location, people involved, and a short description of what happened. Reports will be reviewed promptly and handled as respectfully and privately as possible.

---
## Enforcement

## 🙌 Scope
Depending on the situation, enforcement actions may include one or more of the following:

This Code of Conduct applies within all project spaces—GitHub issues, pull requests, Discord discussions, and any project-related online/offline event.
- A private warning
- A request to stop or change the behavior
- Removal of content that violates this policy
- Temporary restriction from project spaces
- Permanent removal from project spaces for serious or repeated violations

---
The exact response will depend on the severity and pattern of the behavior.

## 🙏 Attribution
## Acknowledgment

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
By participating in StudyMatePlus, you agree to follow this Code of Conduct and help maintain a safe, respectful, and inclusive community.

---
## Attribution

**Let’s work together to make StudyMatePlus a welcoming, inclusive, and impactful open-source community! 💙**
This Code of Conduct is based on the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, and adapted for StudyMatePlus.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 🤝 Contributing to StudyMatePlus

🎉 Thank you for considering contributing to **StudyMatePlus**, an open-source resource hub for students built with ❤️ during **GirlScript Summer of Code 2025 (GSSoC'25)**.
🎉 Thank you for considering contributing to **StudyMatePlus**, an open-source resource hub for students built with ❤️ during **GirlScript Summer of Code 2026 (GSSoC'26)**.

Whether you're a beginner or an experienced developer, your contributions are valued and appreciated.

Expand Down
195 changes: 98 additions & 97 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,161 +1,162 @@
# 📘 StudyMatePlus
# StudyMatePlus

🔗 **Live Website**: [https://studymateplus.vercel.app](https://studymateplus.vercel.app)
Live demo: [https://studymateplus.vercel.app](https://studymateplus.vercel.app)

**StudyMatePlus** is an open-source platform designed to help college students access academic resources such as **syllabus**, **previous year question papers (PYQs)**, and **exam feedback**, along with an option to connect with **seniors** for guidance.
The goal is to support students during exam preparation by providing a centralized, reliable, and user-friendly resource hub.
StudyMatePlus is a student-focused academic resource platform built to help learners find everything they need for exam preparation in one place. It brings together syllabus material, previous year question papers, feedback from other students, analytics, and community-driven study tools in a clean React experience backed by a Node.js API.

---
## Overview

## 🎯 Project Objective
Students often spend too much time searching across multiple websites, folders, and group chats for reliable academic material. StudyMatePlus reduces that friction by organizing study resources around the way students actually prepare for exams.

Students often face difficulty finding authentic academic materials in one place. Information like syllabus PDFs, PYQs, and exam tips are scattered or unavailable. This project aims to build a platform that:
The platform currently focuses on:

* Organizes syllabus and PYQs department-wise
* Includes student feedback on exam papers (e.g., difficulty levels, important topics)
* Connects juniors with seniors for mentoring and doubt clearing
* Supports **multiple universities and departments** in one place
- Syllabus browsing by university, department, and semester
- Previous year question papers with downloadable reports
- Student exam feedback and difficulty insights
- Notes, study resources, and contribution workflows
- Authenticated pages for a more personalized experience
- Supporting pages such as FAQ, privacy, about, contact, profile, and analytics

---
## Key features

## 🌟 Key Features (To Be Developed)
- Responsive landing page with clear navigation into study resources
- Protected routes for authenticated users
- Syllabus and PYQ browsing experiences tailored for academic planning
- Feedback collection to capture exam difficulty, important topics, and preparation tips
- Analytics views for understanding resource trends
- Mind map, tasks, profile, and contribution sections for student productivity
- Light/dark theme support in the client UI

* ✅ Filter syllabus and papers by **university**, **semester**, **subject**
* ✅ **Student feedback** section for each paper (e.g., "Paper was tricky — focus on Unit 2")
* ✅ Secure **senior-student chat** or forum system
* ✅ Upload and browse **notes, guides, and important questions**
* ✅ Clean and **mobile-friendly** interface
## Tech stack

---
### Frontend

## 🛠️ Tech Stack
- React 19
- React Router
- Framer Motion
- Chart.js / react-chartjs-2
- React Icons
- Axios

| Area | Technology |
| -------------- | ---------------------------------- |
| Frontend | React.js / Next.js |
| Backend | Node.js / Express / Firebase |
| Database | MongoDB / Firebase Firestore |
| Authentication | Google / University Email Login |
| Real-time | Socket.io / Firebase Realtime DB |
| Hosting | Netlify / Vercel / Heroku / Render |
### Backend

---
- Node.js
- Express
- MongoDB with Mongoose
- JWT authentication
- Helmet and rate limiting for basic hardening
- Multer for file uploads
- PDF generation utilities

## 📁 Project Structure (To Be Followed)
## Repository structure

```
```text
StudyMatePlus/
├── client/ # Frontend code
├── server/ # Backend code
├── docs/ # Diagrams, mockups
├── .github/ # Issue templates, PR templates
├── client/ # React frontend
├── server/ # Express / MongoDB backend
├── tools/ # Utility scripts
├── README.md
├── CONTRIBUTING.md
├── LICENSE
└── .env.example
├── CODE_OF_CONDUCT.md
└── LICENSE
```

---

## 💻 Getting Started
## Prerequisites

### 1. Fork the Repository
- Node.js 18 or newer
- npm 9 or newer
- MongoDB connection string

Click on the **Fork** button on the top-right corner of this page to create your own copy.
## Local setup

### 2. Clone Your Fork
### 1. Clone the repository

```bash
git clone https://github.com/your-username/StudyMatePlus.git
git clone https://github.com/<your-username>/StudyMatePlus.git
cd StudyMatePlus
```

### 3. Install Dependencies
### 2. Install dependencies

To install the required dependencies, run the following commands:
Install backend and frontend dependencies separately:

```bash
npm install # Install server-side dependencies
cd client
npm install # Install frontend (React) dependencies
cd server
npm install

cd ..\client
npm install
```

### 4. Configure Environment Variables
### 3. Configure environment variables

Create a `.env` file in `server/` and add the required values.

Create a `.env` file in both the root and `client/` directories using the `.env.example` file provided as a reference.
Recommended variables:

Update values like your MongoDB URI and secret keys.
Example
```bash
PORT=5000
MONGO_URI=your-mongodb-uri-here
JWT_SECRET=your-secret-key-here
MONGO_URI=your-mongodb-connection-string
JWT_SECRET=your-strong-jwt-secret
CLIENT_URL=http://localhost:3000
OPENAI_API_KEY=optional-if-you-use-ai-features
```

### 5. Run the Application
If your frontend needs to point at a deployed backend or a different local API, set the client API URL as well:

```bash
REACT_APP_API_URL=http://localhost:5000
```

Start both the backend and frontend:
### 4. Run the application

Start the backend and frontend in separate terminals:

```bash
# Terminal 1
npm run dev # Runs server on localhost:5000 (or your preferred port)
cd server
npm run dev

# Terminal 2
cd client
npm start # Runs React frontend on localhost:3000
npm start
```

---

## 🧑‍💻 How to Contribute
<!-- Fix: Updated GSSoC year from 2025 to 2026 -->
We welcome contributors of **all experience levels**, especially **beginners** participating through **GirlScript Summer of Code (GSSoC) 2026** and beyond.

Follow the steps below to begin your contribution journey:

### 📄 Step 1: Read the Guidelines

* 📘 Read our [README.md](./README.md)
* 📚 Go through the [CONTRIBUTING.md](./CONTRIBUTING.md)
* 🤝 Understand our [Code of Conduct](./CODE_OF_CONDUCT.md)
The frontend usually runs on `http://localhost:3000`, and the backend API runs on `http://localhost:5000`.

### 🌐 Step 2: Choose an Issue
## Available scripts

* Check the **Issues** tab for `good first issue` labels
* Comment on the issue you want to work on
* Wait for the maintainers to assign you the issue
### Server

### 🔧 Step 3: Make Your Changes
- `npm run dev` — start the backend with Nodemon
- `npm start` — start the backend in production mode

* Create a new branch: `git checkout -b feature-name`
* Make your changes
* Run tests and ensure everything works smoothly
### Client

### 📤 Step 4: Submit a Pull Request
- `npm start` — run the React development server
- `npm run build` — build the frontend for production
- `npm test` — run the React test suite

* Push your changes: `git push origin feature-name`
* Open a Pull Request (PR) from your forked repository
* Link the issue number in your PR description
## Contributing

---

## 🙌 Code of Conduct
Contributions are welcome. A good workflow is:

We follow a [Contributor Covenant](https://www.contributor-covenant.org/) to ensure a welcoming environment for everyone.
1. Read the [CONTRIBUTING.md](./CONTRIBUTING.md) guide.
2. Check the Issues tab for an open task.
3. Create a branch for your work.
4. Make your changes and verify them locally.
5. Open a pull request with a clear summary of what changed.

---
Please follow the [Code of Conduct](./CODE_OF_CONDUCT.md) in all contributions and discussions.

## 📜 License
## License

This project is licensed under the [MIT License](./LICENSE).

---

## 📞 Contact & Community
## Contact

For queries or discussions:
For questions, suggestions, or collaboration ideas, please use the repository issues/discussions or connect through the project maintainer’s linked channels.

* Contact me on LinkedIn (https://www.linkedin.com/in/lovely-mahour-992316265/)
* Follow project updates in Issues and Discussions tab
---

Let's build a student-friendly platform together! 🚀
Built to make academic preparation a little less chaotic and a lot more organized.