Coder Social home page Coder Social logo

coders-hq / codershq Goto Github PK

View Code? Open in Web Editor NEW
132.0 20.0 46.0 34.96 MB

Social platform for developers to network, create and challenge themselves

Home Page: https://codershq.ae

License: MIT License

Shell 1.44% Python 30.01% CSS 5.60% JavaScript 1.96% SCSS 0.40% HTML 58.58% Dockerfile 1.59% Makefile 0.38% Procfile 0.04%
django hackathon docker profile social-platform competitive-programming-contests hacktoberfest

codershq's Introduction

Coders(hq) logo

Coders Headquarters

Cookiecutter Django Badge MIT License Badge Discord Server Badge

Index

👋 Introduction

All Contributors

Coders Headquarters (CodersHQ) is a social platform for developers to grow, network, challenge themselves, and gain points by contributing and helping others in this community. This platform was built by the community and for the community. The essence of CodersHq is to inspire everyone to learn to code, share knowledge and learn together.

Currently the platform is at the alpha stage with a lot of the foundations being set. It is built using django and deployed using docker.

📄 The Docs

Have a look at the docs, we document everything over there. We plan to migrate from the docs to something more established, like readthedocs, once we have enough material to work with.

We also document the tasks in Notion and you can have a look at the issues section to find out what we are working on.

⚙️ Quick Setup

Make sure you have Docker version 2+ and then do the following to build the stack and update the databse :

$ docker-compose -f local.yml build
$ docker-compose -f local.yml run --rm django python manage.py makemigrations
$ docker-compose -f local.yml run --rm django python manage.py migrate
$ docker-compose -f local.yml run --rm django python manage.py createsuperuser

Follow the rest of the README for more information and use /admin to edit and create challenges.

🧑‍💻 Getting Up and Running Locally With Docker

The steps below will get you up and running with a local development environment. All of these commands assume you are in the root of your generated project.

Note

If you're new to Docker, please be aware that some resources are cached system-wide and might reappear if you generate a project multiple times with the same name.

Prerequisites

  • Docker; if you don't have it yet, follow the installation instructions;
  • Docker Compose; refer to the official documentation for the installation guide.
  • (Windows) This repository can run on windows and was tested on WSL2. Once you have WSL2, and a linux kernel, installed and running you need to install docker and you should be good to go. (Tested on Docker version 20.10.7, build f0df350 and Windows OS Build: 19042.1052)

🏗️ Build the Stack

This can take a while, especially the first time you run this particular command on your development system::

$ docker-compose -f local.yml build

Generally, if you want to emulate production environment use production.yml instead. And this is true for any other actions you might need to perform: whenever a switch is required, just do it!

Run the Stack

This brings up both Django and PostgreSQL. The first time it is run it might take a while to get started, but subsequent runs will occur quickly.

Open a terminal at the project root and run the following for local development::

$ docker-compose -f local.yml up

You can also set the environment variable COMPOSE_FILE pointing to local.yml like this::

$ export COMPOSE_FILE=local.yml

And then run::

$ docker-compose up

To run in a detached (background) mode, just::

$ docker-compose up -d

Execute Management Commands

As with any shell command that we wish to run in our container, this is done using the docker-compose -f local.yml run --rm command: ::

$ docker-compose -f local.yml run --rm django python manage.py migrate
$ docker-compose -f local.yml run --rm django python manage.py createsuperuser

Here, django is the target service we are executing the commands against.

(Optionally) Designate your Docker Development Server IP

When DEBUG is set to True, the host is validated against ['localhost', '127.0.0.1', '[::1]']. This is adequate when running a virtualenv. For Docker, in the config.settings.local, add your host development server IP to INTERNAL_IPS or ALLOWED_HOSTS if the variable exists.

Basic Commands

Setting Up Your Users

  • To create a normal user account, just go to Sign Up and fill out the form. Once you submit it, you'll see a "Verify Your E-mail Address" page. Go to your console to see a simulated email verification message. Copy the link into your browser. Now the user's email should be verified and ready to go.

  • To create an superuser account, use this command:

    $ python manage.py createsuperuser

For convenience, you can keep your normal user logged in on Chrome and your superuser logged in on Firefox (or similar), so that you can see how the site behaves for both kinds of users.

Type checks

Running type checks with mypy:

    $ mypy codershq

Test coverage

To run the tests, check your test coverage, and generate an HTML coverage report:

    $ coverage run -m pytest
    $ coverage html
    $ open htmlcov/index.html

Running tests with py.test

    $ pytest

Celery

This app comes with Celery.

To run a celery worker:

    cd codershq
    celery -A config.celery_app worker -l info

Please note: For Celery's import magic to work, it is important where the celery commands are run. If you are in the same folder with manage.py, you should be right.

Email Server

In development, it is often nice to be able to see emails that are being sent from your application. For that reason local SMTP server MailHog with a web interface is available as docker container.

Container mailhog will start automatically when you will run all docker containers. Please check cookiecutter-django Docker documentation for more details how to start all containers.

With MailHog running, to view messages that are sent by your application, open your browser and go to http://127.0.0.1:8025

Stargazers ⭐

Thanks to all of our Stargazers ⭐ 🔭 who are supporting CodersHQ project

Stargazers repo roster for @Coders-HQ/CodersHQ

Contributors ✨

We would like to thank and appreciate our extraordinary contributors 👏


Rashed Suwaidi

💻 🎨 📆 🚇 🚧

Musab

💻

Abdulrahman Alblooshi

💻 🎨

Abdulkarim Suleiman

🖋

arsxl

💻 🔌

DerpySmurf

💻 🎨

haralali

📆

Kajal Doshi

💻 🚇

Khushboo Gehi

📆

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

codershq's People

Contributors

abdualblooshi avatar abdulkarim-suleiman avatar allcontributors[bot] avatar arsxl avatar cr2007 avatar dependabot[bot] avatar derpysmurf avatar haralali avatar kajaldoshi avatar musab0 avatar naisofly avatar ralsuwaidi avatar vatsalyagoel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codershq's Issues

Create a chat system for users to communicate

🏆 Task Description: Create a simple chat system that can be added to the tech stack
👨‍🚀 Skills Needed: Fullstack


Requirements

  • basic chat feature that can be triggered when selecting a user
  • can run separately
  • it can be an api but must be hosted locally

Create a company database class

🏆 Task Description: Create a new database class that defines what a company is
👨‍🚀 Skills Needed: Django


Requirement

  • Create a new database class that defines what a company is
  • link that company with a user base class
  • Add a method for a user to become a company

Participate endpoint needs UI update

🏆 Task Description: Update the UI page of the participation endpoint
👨‍🚀 Skills Needed: HTML, CSS


UI update for /event/{id}/participate

Streamline CHQ events with eventbrite

🏆 Task Description: Combine CHQ events with eventbrite
👨‍🚀 Skills Needed: Python, API


Currently when there is an event it triggers an automate.io script to push the event to discord.
It would be better that once an event is created in the platform a signal is sent and a local bot pushes the event to discord.

Streamline Events

Events API Streamline

We need to streamline all the events into one clean process. To do this we must first connect coders hq with [eventbrite](https://www.eventbrite.com/) (the current event system). Eventbrite has [its own api](https://www.eventbrite.com/platform/docs/api-basics) and we need to create an event in the eventbrite system anytime an event is created in CHQ.

Wanted Process

  1. Event is created in CHQ
  2. A signal is sent to eventbrite (using django event model)
  3. The signal contains all the details to create an eventbrite event

Testing Criteria

  • Make a test account with eventbrite
  • Make a local version of CHQ
  • Create an event in the django admin page and it should create the same event in eventbrite

Reward

  • contributor role in discord
  • love and appreciation

Update ReadMe

Make the ReadMe more relevant with the right information to build.

Setting account username to the social account name

🏆 Task Description: Link setting account username to the social account name
👨‍🚀 Skills Needed: Django


automatically setting the social account name to the username of the CodersHQ account could result in the following issue:

userA registers through CodersHQ with username:xyz without linking a social account.
userB with GitHub username:xyz will not be able to login with GitHub as the username was taken by userA.

Event calendar for CHQ events

🏆 Task Description: Create a calendar which links to all events
👨‍🚀 Skills Needed: HTML, CSS


Currently CHQ has public events that people can join using an invite link. It would be good to have a single page that displays CHQ events with invite links.

Create a requirement document for the blockchain incentive program

🏆 Task Description: Create a document with all the requirements needed for the project
👨‍🚀 Skills Needed: Blockchain, Crypto


We are planning to launch our very own currency which ties in with the rest of the platform. The idea is to have the currency integrate with the platform and automatically gives rewards based on contribution, participation and completion of different events and challenges. These rewards can later be cashed into a marketplace

To achieve this we need to start by first writing down what we are looking for in a program such as this one.

Auto generate certificate of attendance for event participants

🏆 Task Description: Auto generate certificate of attendance for event participants
👨‍🚀 Skills Needed: Python, Image Manipulation

  • If someone joins an event there they can receive a certificate if they verify that they attended the event.
  • Multiple events

Design a dashboard that connects every part of CHQ that shows basic data

🏆 Task Description: Dashboard design and prototype
👨‍🚀 Skills Needed: CSS, HTML, Figma


There is so many things happening on the platform. We need a dashboard design that can connect all of them and display it in one place.

📝 Submission Requirements

  • Dashboard design using tailwind CSS
  • (optional) dark mode
  • must show: events up coming, challenges joined, score, basic profile information, any extra info that makes sense

Adding User Settings in Database

It would be better if the data was passed to the root html file in codershq/templates/base.html

  • themePreference (can be text/varchar): default value would be light and dark would be an option
  • languagePreference (also text/varchar): default value would be en and ar would be an option

Limit scoring

Add function to limit points in scoring in any one dimension. So someone who has large commits should not dominate the scoring.

Add a contributors section in the home page

🏆 Task Description: Add a section in the landing page to showcase CHQ contributors
👨‍🚀 Skills Needed: HTML, CSS


We need to add a section after the partners in the home page which shows the lead contributors with

a picture / small bio / and a social media account

The contributors are also discord admins.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.