Skip to content

About: Laudable is an audio sharing app intended to accelerate the pace of scientific discovery by allowing users to upload the audio versions of their published research. This repo is the Graphene-Django backend for my project Laudable.

Notifications You must be signed in to change notification settings

Sc0tticus/Laudable-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laudable.tech - Backend

This is the backend API for the website: https://laudable.tech/ . The API allows the frontend to add users, authenticate/authorize users, add audio files, download audio files, search for audio files, like audio files, and have all liked audio files show up on the logged in users profile.

Frontend respository: https://github.com/Sc0tticus/Laudable-Frontend

Built With

Frontend: JavaScript, React v16.8.2, React-Apollo v2.4.1, React-Dom v16.8.2, React-Player v1.9.3, React-Router-Dom v4.3.1, React-Scripts v2.1.5, Material-UI v3.0.1, Apollo-Boost v0.1.28, Axios: v0.18.0, GrapQL v14.1.1,

Backend: Python 2.7.16, Insomnia REST API, aniso8601 v7.0.0, asgiref v3.2.10, autopep8 v1.5.4, dj-database-url v0.5.0, Django v3.1, django-cors-headers v3.4.0, django-graphql-jwt v0.3.1, django-heroku v0.3.1, graphene v2.1.8, graphene-django v2.13.0, graphql-core v2.3.2, graphql-relay v2.0.1, gunicorn v20.0.4, promise v2.3 psycopg2 v2.8.5, psycopg2-binary v2.8.5, pycodestyle v2.6.0, PyJWT v1.7.1, pytz v2020.1, Rx v1.6.1 singledispatch v3.4.0.3, six v1.15.0, sqlparse v0.3.1, toml v0.10.1, Unidecode v1.1.1, whitenoise v5.2.0

https://cloudinary.com/: was used to host all of the uploaded audio files.

App Features

Become an Authenticated/Authorized User: Create a user account with your name, email, and password and get authenticated via Django-GrapQL-JWT.

Create, Read, Update, and Delete, Audio Files (Full CRUD): This API endpoint allows users to create (upload) MP3 files of their choosing provided the file size is < 15MB.Creating an audio file requires users to give their audio file a Title, Description, as well as attach a audio file. Users can also read, update, and delete audio files that they have created. When a user creates an audio file the audio track that user created will show up on that user's profile.

Download Audio Files: This API endpoint allows users to download MP3 files of their choosing.

Like Audio Files: This API endpoint allows users to like audio files of their choosing. Liked audio files will show up on that users profile.

Search Audio Files: This API endpoint allows users to search for audio files uploaded to https://laudable.tech/.

Demonstration Video https://www.youtube.com/watch?v=y4oTaBYJs8w&feature=youtu.be

Challenges

This is my first project coding in Python and working with Graphene-Django, GraphQL, Insomnia, and Cloudinary. Using Graphene-Django simplified much of the backend code however understanding the nuances of how to succesfully do things within Python's virtual environment had me struggling at times. I also found the process of using GraphQL to create seed data and in using the Insomnia API REST Client for verifying user AUTH with JWT tokens, quite challenging.

Future Implementation

-Allow users to upload profile pictures. -Allow users to upload PDF's of their published work to be included with the audio file. -Text-to-speech option on uploaded PDF's in case the user doesn't have time to record an audio file.

Collaboration

Fork and/or clone this repo & the frontend repo - https://github.com/Sc0tticus/Laudable-Frontend Create PostgreSQL database createdb laudible_db Migrate database tables in backend: python3 manage.py migrate Run backend server: python3 manage.py runserver Install dependencies on frontend: npm install Run frontend server: npm start Checkout new branch

If you'd like to collaborate on this project, please email me at: [email protected]

About

About: Laudable is an audio sharing app intended to accelerate the pace of scientific discovery by allowing users to upload the audio versions of their published research. This repo is the Graphene-Django backend for my project Laudable.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages