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.
- 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
- A user creates an account or logs in.
- The user can browse existing study rooms.
- Rooms can be filtered by topic or found through search.
- Authenticated users can create their own rooms.
- Users communicate by sending messages inside a room.
- A user becomes a room participant after sending a message.
- Room hosts can update or delete their rooms.
- Users can view profiles and recent platform activity.
- Python
- Django 4.2.6
- SQLite
- Django Templates
- HTML
- CSS
- JavaScript
Represents the subject of a study room.
Topic
└── name
Represents a study room created by a user.
Room
├── host
├── topic
├── name
├── description
├── participants
├── created
└── updated
Represents a message posted inside a room.
Message
├── user
├── room
├── body
├── created
└── updated
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
git clone https://github.com/developer2507/StudyBuddy.git
cd StudyBuddypython -m venv venv
venv\Scripts\activatepython3 -m venv venv
source venv/bin/activatepip install Django==4.2.6python manage.py migrateOpen studybud/settings.py and set:
DEBUG = Truepython manage.py runserverOpen the application:
http://127.0.0.1:8000/
Create an administrator account:
python manage.py createsuperuserStart the server and open:
http://127.0.0.1:8000/admin/
The admin panel can be used to manage:
- Users
- Topics
- Rooms
- Messages
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
This is a learning project created for Django practice. It is not intended to be a production-ready application.