Backend/API for the Mumble.dev, an open source social media application.

Overview

Welcome to the Mumble Api Repository

Mumble Community Mumble SQL Diagram Mumble


Getting Started

If you are trying to use this project for the first time, you can get up and running by following these steps.

To contribute to this project, please see the contributing guidelines.

Note, this step assumes you are using github ssh keys for the git clone method

The Mumble Diagram

--> Preview :


--> Full View:

You can see clearly the diagram at : 

Requirements

Technology Version
Python 3.x
pip latest version
asgiref 3.3.4
dj-database-url 0.5.0
Django 3.2
django-cors-headers 3.7.0
django-heroku 0.3.1
djangorestframework 3.12.4
djangorestframework-simplejwt 4.6.0
gunicorn 20.1.0
Pillow 8.2.0
psycopg2 2.8.6
PyJWT 2.0.1
pytz 2021.1
six 1.15.0
sqlparse 0.4.1
whitenoise 5.2.0

Install and Run

Make sure you have Python 3.x installed and the latest version of pip installed before running these steps.

To contribute, please follow the guidelines process.

Clone the repository using the following command

git clone [email protected]:divanov11/mumbleapi.git
# After cloning, move into the directory having the project files using the change directory command
cd mumbleapi

Create a virtual environment where all the required python packages will be installed

# Use this on Windows
python -m venv env
# Use this on Linux and Mac
python -m venv env

Activate the virtual environment

# Windows
.\env\Scripts\activate
# Linux and Mac
source env/bin/activate

Install all the project Requirements

pip install -r requirements.txt

-Apply migrations and create your superuser (follow the prompts)

# apply migrations and create your database
python manage.py migrate

# Create a user with manage.py
python manage.py createsuperuser

Load test data to your databsae

# load data for feed
python manage.py loaddata feeddata.json

# load data for article
python manage.py loaddata articledata.json

# load data for discussion
python manage.py loaddata discussiondata.json

Run the development server

# run django development server
python manage.py runserver

Reviewers

After submitting your PR, please tag reviewer(s) in your PR message. You can tag anyone below for the following.


Explore admin panel for model data or instances

http://127.0.0.1:8000/admin or http://localhost:8000/admin

Login with the user credentials (you created) using "createsuperuser" cmd

If everything is good and has been done successfully, your Django Rest API should be hosted on port 8000 i.e http://127.0.0.1:8000/ or http://localhost:8000/

Comments
  • .gitignore file is not working properly

    .gitignore file is not working properly

    Describe the bug

    The .gitignore file is not working properly i.e can't exclude the db.sqlite3 file
    

    To Reproduce

    Steps to reproduce the behavior:

    1. Pull Recent changes from the repo
    2. You will see that the SQLite database is not excluded

    What was expected ?

    The SQLite database is supposed to be ignored
    

    Screenshots

    Screenshot from 2021-04-27 20-39-29

    bug 
    opened by itzomen 13
  • Skills and Topic tags

    Skills and Topic tags

    Model for Skill and Topic Tags needed. At this point I feel both tags can be added in the "Users" app.

    We also need to render these tags in the user serializer. At this point we just have hard coded values. User Tags

    enhancement component: users models database 
    opened by divanov11 12
  • setup editor config, flake8 and isort for code linting

    setup editor config, flake8 and isort for code linting

    Describe your changes :


    I worked on Issue #89 because it is necessary to maintain style consistency in the project as it grows.

    Type of change :

    • [ ] Bug fix
    • [x] New feature
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Checklist:

    • [x] I have read the Code Of Conduct document.
    • [x] I have read the CONTRIBUTING document.
    • [x] I have performed a self-review of my own.
    • [x] I have tagged my reviewers below.
    • [x] I have commented my code, particularly in hard-to-understand areas.
    • [x] My changes generate no new warnings.
    • [x] All new and existing tests passed.

    Reviewers

    Backend: @PraveenMalethia , @abhivemp,

    cleanup/optimization 
    opened by itzomen 10
  • added endpoint for profile pic update

    added endpoint for profile pic update

    I worked on the User app

    Context of the change :

    Added Django Debug Toolbar

    Added endpoint to update profile pic

    Improved Queries Performance in User App

    Before

    before_q

    After

    after_q

    Modified Profile model to save new uploaded profile photo to dynamic location : /Mumble Profile Pictures/username/date/filename

    Modified UserProfileUpdate view to also update email

    component: users status: Needs Review Review: Needs 1 
    opened by gmrzone 10
  • changed return response of Registerview to throw valid error message and added validation for email id

    changed return response of Registerview to throw valid error message and added validation for email id

    …sages

    Describe your changes :


    I worked on the Response of Register view because there are no attribute messages for the Response method so I have changed the messages=messages to {"messages":messages}.

    Type of change :

    • [x] Bug fix

    Preview (Screenshots) :

    If it is possible, please link screenshots of your changes preview !

    Checklist:

    • [x] I have read the Code Of Conduct document.
    • [x] I have read the CONTRIBUTING document.
    • [x] I have performed a self-review of my own.
    • [x] I have tagged my reviewers below.
    • [ ] I have commented my code, particularly in hard-to-understand areas.
    • [x] My changes generate no new warnings.
    • [ ] I have added tests that prove my fix is effective or that my feature works.
    • [x] All new and existing tests passed.

    Reviewers

    Backend: @abhivemp, @divanov11

    opened by Sachin-chaurasiya 9
  • Setup Bleach to Sanitize Articles

    Setup Bleach to Sanitize Articles

    Is your feature request related to a problem? Please describe.

    Articles are created using CK-Editor which can allow people to upload malicious HTML. We need to sanitize that HTML before the UI can try to display it.

    Describe the solution you'd like

    We want to install Bleach https://github.com/mozilla/bleach so that we can sanitize the HTML uploaded when users created and edit articles.

    Describe alternatives you've considered

    Bleach is supposed to be a good library.

    Additional context

    Add any other context such as screenshots, schematics, about the feature request here.

    enhancement component: feed component: articles component: discussion 
    opened by codyseibert 7
  • Can we check Emails entered against proper email service providers while signup, to avoid zibberish email registration

    Can we check Emails entered against proper email service providers while signup, to avoid zibberish email registration

    Is your feature request related to a problem? Please describe.

    Currently, any email address can be taken up for registration, we need to avoid that

    Describe the solution you'd like

    While user enters his/her email address, we can send an ajax request to a check VIEW to verify whether the entered email address is from a valid email service provider like gmail, hotmail, etc, depending on which it will or will not allow new user to register

    Alternate solution

    Without AJAX it can be done too

    enhancement 
    opened by rshalem 7
  • Follow python naming conventions

    Follow python naming conventions

    Is your feature request related to a problem? Please describe.

    Describe the solution you'd like

    Variables and functions that are currently using camelCase should be changed to snake_case. This would improve the code quality.

    The following files should be refactored:

    article

    • [ ] article/views.py

    discussion

    • [ ] discussion/views.py

    feed

    • [ ] feed/serializers.py (this might require a frontend update)
    • [ ] feed/signals.py
    • [ ] feed/utils.py
    • [ ] feed/views.py

    notification

    • [ ] notification/signals.py
    • [ ] notification/views.py

    users

    • [ ] users/signals.py
    • [ ] users/views.py

    This could be changed in one PR or do it by apps.

    enhancement component: users component: feed component: articles component: discussion component: notifications 
    opened by guilleijo 6
  • Redirecting to an article detail view based on search query isn't working

    Redirecting to an article detail view based on search query isn't working

    Preflight Checklist

    [I have searched the issue tracker for this issue and couldnt find any, hence created a new one]

    Describe the bug

    When an article is searched for, it displays article if present, but redirecting to that searched article isn't working when clicked

    To Reproduce

    Steps to reproduce the behavior:

    1. Go to 'Homepage'
    2. Click on Enter after search query is typed
    3. Scroll down to 'the required query result if present in db'
    4. See error (Here unable to go to that searched article)

    What was expected ?

    To be redirected to the searched article when clicked on it

    Screenshots

    If applicable, add screenshots to help explain your problem.

    Additional context

    Add any other context about the problem here (include commit numbers and branches if relevant)

    bug component: articles 
    opened by rshalem 6
  • Redirect to HTTPS

    Redirect to HTTPS

    Describe the bug:

    Redirect the URL to HTTPS

    Screenshots:

    image

    Solution:

    Add the following to the settings.py file, adding the middleware to your existing MIDDLEWARE list if one exists.

    MIDDLEWARE = [
        # SecurityMiddleware must be listed before other middleware
        'django.middleware.security.SecurityMiddleware',
        # ...
    ]
    
    if not DEBUG:      # When we are in production ( DEBUG = False ), the URL will redirect to HTTPS
        SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
        SECURE_SSL_REDIRECT = True    
    

    Source:

    bug 
    opened by Saketh-Chandra 6
  • Email Backend

    Email Backend

    Email Backend is set to Console Backend need to be changed so that forget password can work perfectly. When I tried forget password the email is not being sent. Please work on it Sir. Since I have not gone through the complete structure of the project I am leaving this issue to someone else to resolve Thank You

    bug 
    opened by ShyamSundhar1411 5
  • fix profile update test #184

    fix profile update test #184

    Describe your changes :


    Type of change :

    • [x] Bug fix

    Preview (Screenshots) :

    change data { 'username': 'TEST' }

    to data{ 'email' : '[email protected]' }

    Screenshot (525)

    opened by rezaizadijahromi 1
  • profile update test

    profile update test

    Describe the bug

    There is a problem with profile update test in the profile update view we just let user to update their email but in the test function we are updating the username when we run the test for update profile it not gonna pass the test

    Screenshots

    Screenshot (524)

    Screenshot (523)

    bug 
    opened by rezaizadijahromi 0
  • Refactored the  models to follow DRY principle

    Refactored the models to follow DRY principle

    Describe your changes :


    I worked on the ..... because ... of the issue #181 Refactoring models to follow DRY principle this will enhance the readability of our Model code.

    Type of change :

    • [ ] Bug fix
    • [ ] New feature
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preview (Screenshots) :

    If it is possible, please link screenshots of your changes preview !

    Checklist:

    • [ x] I have read the Code Of Conduct document.
    • [ x] I have read the CONTRIBUTING document.
    • [ x] I have performed a self-review of my own.
    • [ ] I have tagged my reviewers below.
    • [ ] I have commented my code, particularly in hard-to-understand areas.
    • [ x] My changes generate no new warnings.
    • [ ] I have added tests that prove my fix is effective or that my feature works.
    • [ x] All new and existing tests passed.

    Reviewers

    @PraveenMalethia @abhivemp

    opened by Azeezdot123 0
  • Refactoring models to follow DRY principle

    Refactoring models to follow DRY principle

    Is your feature request related to a problem? Please describe.

    No, i just saw different model class having the same attribute

    created = models.DateTimeFied(...)

    Describe the solution you'd like

    Can't we move the similar attribute in this case

    created = models.DateTimeField(...)

    to a separate class and make other class that needs created to inherit from the class?

    Describe alternatives you've considered

    class DateTimeModel(models.Model):
        created = models.DateTimeField(...)
        
        class Meta:
            abstract = True
    
    class AnotherModel(DateTimeModel):
        ...
    
    enhancement 
    opened by sulavmhrzn 4
  • Getting Foreign Key constraint failed error while running loaddata command

    Getting Foreign Key constraint failed error while running loaddata command

    HI, I am getting this below error while loading the test JSON data using the command python manage.py loaddata articledata.json

    ERROR:- raise dj_exc_value.with_traceback(traceback) from exc_value File "D:\Programming\Django\mumbleapi\env\lib\site-packages\django\db\backends\base\base.py", line 242, in _commit return self.connection.commit() django.db.utils.IntegrityError: FOREIGN KEY constraint failed

    Please look into the issue. Also explain the problem due to which it occurs.

    bug 
    opened by shukl08vk 6
Owner
Dennis Ivy
I was a lead developer in a past life, now I enjoy teaching courses.
Dennis Ivy
💻 Algo-Phantoms-Backend is an Application that provides pathways and quizzes along with a code editor to help you towards your DSA journey.📰🔥 This repository contains the REST APIs of the application.✨

Algo-Phantom-Backend ?? Algo-Phantoms-Backend is an Application that provides pathways and quizzes along with a code editor to help you towards your D

Algo Phantoms 44 Nov 15, 2022
Tools for collecting social media data around focal events

Social Media Focal Events The focalevents codebase provides tools for organizing data collected around focal events on social media. It is often diffi

Ryan Gallagher 80 Nov 28, 2022
It really seems like Trump is trying to get his own social media started. Not a huge fan tbh.

FuckTruthSocial It really seems like Trump is trying to get his own social media started. Not a huge fan tbh. (When TruthSocial actually releases, I'l

null 0 Jul 18, 2022
An integrated library for checking email if it is registered on social media

An integrated library for checking email if it is registered on social media

Sidra ELEzz 13 Dec 8, 2022
Mail Me My Social Media stats (SoMeMailMe)

Mail Me My Social Media follower count (SoMeMailMe) TikTok only show data 60 days back in time. With this repo you can easily scrape your follower cou

Daniel Wigh 1 Jan 7, 2022
💉 🔍 VaxFinder - Backend The backend for the Vaccine Hunters Finder tool.

?? ?? VaxFinder - Backend The backend for the Vaccine Hunters Finder tool. Development Prerequisites Python 3.8 Poetry: A tool for dependency manageme

Vaccine Hunters Canada 32 Jan 19, 2022
Todo-backend - Todo backend with python

Todo-backend - Todo backend with python

Julio C. Diaz 1 Jan 7, 2022
Visualize Data From Stray Scanner https://keke.dev/blog/2021/03/10/Stray-Scanner.html

StrayVisualizer A set of scripts to work with data collected using Stray Scanner. Usage Installing Dependencies Install dependencies with pip -r requi

Kenneth Blomqvist 45 Dec 30, 2022
Dev-meme - A repository that contains memes just for people like us

A repository that contains memes just for people like us. Coders are constantly

Padmashree Jha 4 Oct 31, 2022
A python script to decrypt media files encrypted using the Android application 'Secret Calculator Photo Vault'. Supports brute force of PIN also.

A python script to decrypt media files encrypted using the Android application 'Secret Calculator Photo Vault'. Supports brute force of PIN also.

null 3 May 1, 2022
chiarose(XCR) based on chia(XCH) source code fork, open source public chain

chia-rosechain 一个无耻的小活动 | A shameless little event 如果您喜欢这个项目,请点击star 将赠送您520朵玫瑰,可以去 facebook 留下您的(xcr)地址,和github用户名。 If you like this project, please

ddou123 376 Dec 14, 2022
Source-o-grapher is a tool built with the aim to investigate software resilience aspects of Open Source Software (OSS) projects.

Source-o-grapher is a tool built with the aim to investigate software resilience aspects of Open Source Software (OSS) projects.

Aristotle University 5 Jun 28, 2022
ArinjoyTheDev 1 Jul 17, 2022
A one place destination to check whatever is trending on the top social and news websites at present.

UpTrend A one place destination to check whatever is trending on the top social and news websites at present. Explore the docs » View Demo · Report Bu

Google Developer Student Clubs - JGEC 10 Oct 3, 2021
CoreSE - basic of social Engineering tool

Core Social Engineering basic of social Engineering tool. just for fun :) About First of all, I must say that I wrote such a project because of my int

Hamed Mohammadvand 7 Jun 10, 2022
Coinloggr - A learning resource and social platform for the coin collecting community

Coinloggr A learning resource and social platform for the coin collecting commun

John Galiszewski 1 Jan 10, 2022
Yandex Media Browser

Браузер медиа для плагина Yandex Station Включайте музыку, плейлисты и радио на Яндекс.Станции из Home Assistant! Скриншот Корневой раздел: Библиотека

Alexander Ryazanov 35 Dec 19, 2022
Telegram bot to upload media to telegra.ph

Telegraph @StarkTelegraphBot A star ⭐ from you means a lot to us ! Telegram bot to upload media to telegra.ph Usage Deploy to Heroku Tap on above butt

Stark Bots 24 Dec 29, 2022
Media Cloud Outlet Filtering

Using ABYZ and Media-Bias Fact-Check outlet databases, I've provided outlet CSV files for both and scripts to intended to match Media Cloud files to respective outlets.

Stephen Scarano 1 Feb 2, 2022