Skip to content

codebuddies/backend

Repository files navigation

Test codecov

Overview of CodeBuddies

CodeBuddies is a remote-first community of independent code learners who enjoy sharing knowledge and helping each other learn faster via discussions and pairing. It is free and open-sourced, and supported by open source contributors and financial backers on our Open Collective.

We are building out a new platform (codebuddies version 3 - cbv3) to replace the old website at at codebuddies.org.

The new version of the website will include features that will help users: share and recommend links to resources/tutorials find open source projects to work on form study groups collect learning paths and share them find 1-hour pair programming partners for any topic much more easily

Note: This project is currently in development

Note: The production branch of this repo is called main to support the black lives matters movement

Code of Conduct

We expect contributors to follow our code of conduct.

Role of the Backend

The backend is a Django app that provides API endpoints that the frontend (a React app) consumes.

We have a technical decision log here, and we document technical discussions and learnings in the discussions tab.

Front End

The front-end repo is built using React and is located at github.com/codebuddies/frontend. Until a staging-api.codebuddies.org URL is live, contributors need to have this backend app running locally (localhost:8000) in order to develop on the front-end.

Tech used

The backend uses Django built on top of Cookiecutter and Django Rest Framework.

We use Docker Compose to stand up local development environments, and GitHub Actions to deploy staging and production. We host on DigitalOcean and store everything in a managed PostgreSQL database.

Some core dependencies we use: djangorestframework==3.10.2 # https://github.com/encode/django-rest-framework coreapi==2.3.3 # https://github.com/core-api/python-client drf-jwt==1.13.4 # https://github.com/Styria-Digital/django-rest-framework-jwt

Contributing & Development Environment Set-Up

Please see CONTRIBUTING.MD

Get Help

Ways you can get help if you're stuck or have questions: -[ ] Create a new discussion post with your question -[ ] Ask in the #codebuddies-meta channel on the CodeBuddies Slack (see: codebuddies.org/slack)

Other Ways to Contribute

There are other ways to contribute to CodeBuddies besides making pull requests to the codebase!

You can: [x] participate in the community on Slack [x] share your feedback on GitHub issues or discussions [x] help review pull requests by checking out the branch and affirming that the expected changes are there

Sponsors

Big thanks to the sponsors of this project!

DigitalOcean

Join CodeBuddies on Duckly

Features

  • Auto-reload - modify the application code in your editor of choice. As you save changes, the application should reload automatically. There should be no need to restart containers to see code changes.

Proof-of-concept Goals

MVP Progress tracker board

  1. A resource datastore
  • save resource
  • delete resource
  • update resource
  • list resource
  • search resources
  1. Resource:
  • title
  • description
  • type
  • credit
  • url
  • referrer
  1. Authentication

Reference Links