Skip to content
Open
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
257 changes: 220 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,86 +1,269 @@
# StudyBuddy
# StudyBuddy 🎓

![Django](https://img.shields.io/badge/django-%23092E20.svg?style=for-the-badge&logo=django&logoColor=white)
![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white)
![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)
![JavaScript]( https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![Azure](https://img.shields.io/badge/azure-%230072C6.svg?style=for-the-badge&logo=microsoftazure&logoColor=white)
![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge&logo=sqlite&logoColor=white)
![Github Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=github-actions&logoColor=white)
![DjangoREST](https://img.shields.io/badge/DJANGO-REST-ff1709?style=for-the-badge&logo=django&logoColor=white&color=ff1709&labelColor=gray)

## 📝 About the Project

## 📝About the project
StudyBuddy is a collaborative web platform designed to help students find study partners and create dedicated study rooms for any topic. Built with Django and deployed on Azure, this application bridges the gap between learners seeking collaborative study opportunities.

StudyBuddy is a web application that allows students to find study partners for any topic of their choice. The application is built using the Django framework and is deployed on Azure. The application is also containerized using Docker and is deployed using Github Actions.
**Problem Statement:** Students often struggle to find like-minded peers for collaborative learning on specific topics.

> StudyBuddy solves the problem of students not being able to find study partners for a particular topic. The application allows students to find study partners for any topic of their choice. The application also allows students to create study groups for a particular topic.
**Solution:** StudyBuddy provides an intuitive platform where students can discover study partners, create topic-specific study rooms, engage in real-time discussions, and build a community around shared learning goals.

---

## 🔮Features
## 🔮 Features

- **Easy to use** - The user interface of the project is very simple and easy to use.
- **Used Docker** - The project is containerized using Docker.
- **Implementated CI/CD** - The project is also integrated with GitHub Actions for continuous integration and continuous deployment.
- **Deployed on Azure** - The project is deployed on Azure using GitHub Actions.
- **Responsive** - The project is responsive and can be used on any device.
- **Login/Signup** - The user can login or signup to the application and create a profile.
- **Create/Join Study Rooms** - The user can create/join study rooms for a particular topic and interact with other users.
- **Profile** - The user can view their profile and edit their profile.
- **Search** - The user can search for a particular topic and find study rooms for that topic.
- **User Authentication** - Secure login and signup system with personalized user profiles
- **Study Room Management** - Create, join, and participate in topic-specific study rooms
- **Real-time Messaging** - Interactive communication within study rooms
- **Topic-based Search** - Find study rooms by searching for specific subjects or topics
- **User Profiles** - View and edit personal profiles, track participation history
- **Responsive Design** - Seamless experience across desktop, tablet, and mobile devices
- **REST API** - Comprehensive API for programmatic access and integration
- **Docker Support** - Containerized deployment for consistent environments
- **CI/CD Pipeline** - Automated testing and deployment via GitHub Actions
- **Cloud Deployment** - Production-ready deployment on Azure

---

## 📸Screenshots
## 📂 Project Structure

>Login Page
```text
StudyBuddy/
├── StudyBuddy/ # Project configuration
│ ├── settings.py # Django settings
│ ├── urls.py # Root URL configuration
│ ├── asgi.py # ASGI config
│ └── wsgi.py # WSGI config
├── base/ # Main application
│ ├── api/ # REST API
│ │ ├── serializers.py # Data serializers
│ │ ├── urls.py # API routes
│ │ └── views.py # API views
│ ├── migrations/ # Database migrations
│ ├── templates/base/ # HTML templates
│ ├── models.py # Database models
│ ├── views.py # View logic
│ ├── urls.py # App URL patterns
│ └── forms.py # Form definitions
├── static/ # Static assets
│ ├── images/ # Icons and avatars
│ ├── js/ # JavaScript files
│ └── styles/ # CSS stylesheets
├── templates/ # Global templates
│ ├── main.html # Base layout
│ └── navbar.html # Navigation component
├── manage.py # Django CLI utility
├── Dockerfile # Docker configuration
├── requirements.txt # Python dependencies
└── README.md # This file
```

**Key Directories:**
- `base/`: Core application logic including models, views, and templates
- `base/api/`: REST API implementation using Django REST Framework
- `static/`: Frontend assets (CSS, JavaScript, images)
- `templates/`: Global HTML layouts and reusable components

---

## 📸 Screenshots

<details>
<summary>Click to view screenshots</summary>

### Login Page
![login-page](https://user-images.githubusercontent.com/81465377/216761524-6e08761a-7d7d-40b6-9949-ba2bdc0a5a2a.jpg)

>Signup Page
### Signup Page
![signup-page](https://user-images.githubusercontent.com/81465377/216761550-02830aa7-c529-413c-b8e1-4436a02fe910.jpg)

>Home Page
### Home Page
![home](https://user-images.githubusercontent.com/81465377/216761576-5e4621d2-953d-41ad-b8dd-6f5ff65993ef.jpg)

>Profile Page
### Profile Page
![profile](https://user-images.githubusercontent.com/81465377/216761593-c2085db8-b5a1-4a5b-80df-759d2224ac14.jpg)

>Create Study Room
### Create Study Room
![create-room](https://user-images.githubusercontent.com/81465377/216761626-c729058a-5609-4478-845c-418fb95c4085.jpg)

>Study Room
### Study Room
![room](https://user-images.githubusercontent.com/81465377/216761652-35407aa9-1dff-406b-86fc-df1659b6f4d8.jpg)

>Edit Profile
### Edit Profile
![edit-profile](https://user-images.githubusercontent.com/81465377/216761663-86396871-c40c-41e2-a9b9-3f5a8b0dcee7.jpg)

</details>

---

## 🎥Demo
![Youtube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white) <br>
[![Video](https://img.youtube.com/vi/GReHXtIDayg/0.jpg)](https://www.youtube.com/watch?v=GReHXtIDayg)
## 🎥 Demo

---
[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=GReHXtIDayg)

## 📂Installation
Watch the full demonstration video on YouTube:

- Clone the repository
[![Video Thumbnail](https://img.youtube.com/vi/GReHXtIDayg/0.jpg)](https://www.youtube.com/watch?v=GReHXtIDayg)

```bash
git clone https://github.com/abhikalparya/StudyBuddy.git
```
---

## 🚀 Setup & Installation

### Prerequisites

- Python 3.8 or higher
- pip (Python package manager)
- Git
- Docker (optional, for containerized deployment)

### Option A: Local Development

1. **Clone the Repository**
```bash
git clone https://github.com/abhikalparya/StudyBuddy.git
cd StudyBuddy
```

2. **Create Virtual Environment**
```bash
python -m venv venv

# On Windows
venv\Scripts\activate

# On macOS/Linux
source venv/bin/activate
```

3. **Install Dependencies**
```bash
pip install -r requirements.txt
```

4. **Initialize Database**
```bash
python manage.py migrate
python manage.py createsuperuser
```

5. **Run Development Server**
```bash
python manage.py runserver
```

6. **Access the Application**

Open your browser and navigate to `http://localhost:8000`

### Option B: Docker Deployment (Recommended)

1. **Build Docker Image**
```bash
docker build -t studybuddy-app .
```

2. **Run Container**
```bash
docker run -p 8000:8000 studybuddy-app
```

3. **Access the Application**

Open your browser and navigate to `http://localhost:8000`

> [!TIP]
> For production deployment, ensure you configure environment variables for `SECRET_KEY`, `DEBUG`, and database settings.

---

## 🛠 API Documentation

StudyBuddy provides a REST API for programmatic access:

- Install the requirements
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/` | GET | API root - lists all available endpoints |
| `/api/rooms/` | GET | Returns all study rooms with metadata |
| `/api/rooms/<id>/` | GET | Detailed information for a specific room |

### Example API Request

```bash
pip install -r requirements.txt
curl http://localhost:8000/api/rooms/
```

- Run the server
### Example API Response

```bash
python manage.py runserver
```json
[
{
"id": 1,
"name": "Python Programming Study Group",
"topic": "Python",
"host": "john_doe",
"participants": 5,
"created": "2026-01-10T10:30:00Z"
}
]
```

---


## 🐛 Bug Reports

Found a bug? Please open an [issue](https://github.com/abhikalparya/StudyBuddy/issues) with:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)

---

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

---

## 👨‍💻 Author

**Abhikal Parya**

- GitHub: [@abhikalparya](https://github.com/abhikalparya)

---

## 🙏 Acknowledgments

- Django community for excellent documentation
- All contributors who helped improve this project
- ESWoC'26 for providing a platform for open-source contribution

---

## 📞 Support

For questions or support, please:
- Open an issue on GitHub
- Reach out via the repository discussions

---

<div align="center">

**If you find this project helpful, please give it a ⭐!**

Made with ❤️ for students, by students

</div>