Skip to content

developer2507/StudyBuddy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyBuddy logo

StudyBuddy

Find study rooms, discuss topics and learn together


📖 About

StudyBuddy is a small Django practice project where users can create and join study rooms, discuss different topics and find people with similar learning interests.

Each room belongs to a topic and contains a conversation between its participants.

The project was created to practice Django fundamentals, including authentication, models, forms, templates, database relationships and CRUD operations.


✨ Features

  • User registration, login and logout
  • Create study rooms
  • Update and delete your own rooms
  • Organize rooms by topic
  • Search rooms by name, topic or description
  • Send messages inside study rooms
  • View room participants
  • Delete your own messages
  • View user profiles
  • Update username and email
  • Browse available topics
  • View recent activity
  • Django admin panel
  • Responsive user interface

🔄 How It Works

  1. A user creates an account or logs in.
  2. The user can browse existing study rooms.
  3. Rooms can be filtered by topic or found through search.
  4. Authenticated users can create their own rooms.
  5. Users communicate by sending messages inside a room.
  6. A user becomes a room participant after sending a message.
  7. Room hosts can update or delete their rooms.
  8. Users can view profiles and recent platform activity.

🛠️ Built With

  • Python
  • Django 4.2.6
  • SQLite
  • Django Templates
  • HTML
  • CSS
  • JavaScript

🗃️ Main Models

Topic

Represents the subject of a study room.

Topic
└── name

Room

Represents a study room created by a user.

Room
├── host
├── topic
├── name
├── description
├── participants
├── created
└── updated

Message

Represents a message posted inside a room.

Message
├── user
├── room
├── body
├── created
└── updated

📁 Project Structure

StudyBuddy/
├── base/
│   ├── migrations/
│   ├── templates/base/
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── models.py
│   ├── urls.py
│   └── views.py
│
├── static/
│   ├── images/
│   ├── js/
│   └── styles/
│
├── studybud/
│   ├── settings.py
│   ├── urls.py
│   ├── asgi.py
│   └── wsgi.py
│
├── templates/
│   ├── main.html
│   └── navbar.html
│
├── db.sqlite3
└── manage.py

🚀 Getting Started

1. Clone the repository

git clone https://github.com/developer2507/StudyBuddy.git
cd StudyBuddy

2. Create a virtual environment

Windows

python -m venv venv
venv\Scripts\activate

macOS/Linux

python3 -m venv venv
source venv/bin/activate

3. Install Django

pip install Django==4.2.6

4. Apply database migrations

python manage.py migrate

5. Enable local development mode

Open studybud/settings.py and set:

DEBUG = True

6. Start the development server

python manage.py runserver

Open the application:

http://127.0.0.1:8000/

🔐 Admin Panel

Create an administrator account:

python manage.py createsuperuser

Start the server and open:

http://127.0.0.1:8000/admin/

The admin panel can be used to manage:

  • Users
  • Topics
  • Rooms
  • Messages

🎯 Practice Goals

This project helped me practice:

  • Django project structure
  • URL routing
  • Function-based views
  • Django ORM
  • Model relationships
  • User authentication
  • Forms and validation
  • CRUD operations
  • Template inheritance
  • Search with Django queries
  • Static files
  • SQLite integration

📝 Note

This is a learning project created for Django practice. It is not intended to be a production-ready application.


👨‍💻 Author

Anar Ismayilov

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages