/vas3k.club

No bullshit IT community with private membership

Primary LanguagePythonMIT LicenseMIT


vas3k.club

Welcome to the vas3k.club codebase. Here we are building our small lifestyle IT community. If you want to help us with that, welcome.

vas3k.club is a platform with private and paid memberships that has emerged around the vas3k.ru blog and satellite chat rooms. It's not a typical IT community with tutorials and framework reviews, but rather more of a lifestyle one. We are trying to build a peaceful and useful ecosystem, which the Internet has lost a long ago. Therefore, we carefully select and filter new members and do not seek wild growth.

Our values: honesty, fair share, respect for other members, rationality, friendliness and usefulness. We have a zero-tolerance policy on anonymity, insults and toxicity. But we always try to stay in touch with reality, so we're also not tolerant of witch hunting and call-out culture.

We're bullshitless community!

🔮 Installing and running locally

  1. Install Docker

  2. Clone the repo

git clone https://github.com/vas3k/vas3k.club.git
cd vas3k.club
  1. Run
docker-compose up

It will start the development server with all the necessary services. Wait till it starts and go to http://127.0.0.1:8000/. Voila.

At the very beginning, you probably need a dev account to log in. Open http://127.0.0.1:8000/godmode/dev_login/ in your browser and it will create one for you and log you in.

Auto-reloading for backend and frontend is performed automatically on every code change. If everything is broken and not working (it happens), you can always rebuild the world from scratch using docker-compose up --build.

Advanced setup:

  • To run telegram bot you have to:
    1. Copy env.exmaple file: cp ./club/.env.example ./club/.env
    2. Fill all the requirement fields in ./club/env, such as TELEGRAM_TOKEN etc.
      • TELEGRAM_TOKEN you can get from @BotFather
      • To get TELEGRAM_CLUB_CHANNEL_URL, TELEGRAM_ADMIN_CHAT_ID etc Just Simply Forward a message from your group/channel to @JsonDumpBot or @getidsbot
    3. Rebuild application: docker-compose up --build

Check out our docker-compose.yml to understand the infrastructure.

🛠 Tech stack

👨‍💻 TL;DR: Django, Postgres, Redis, Vue.js, Webpack

We try to keep our stack as simple and stupid as possible. Because we're not very smart either.

This section is in progress...

🚢 Deployment

We desperately need someone to set us up with an automatic deploy via Ansible and Github Actions (or Travis CI) on merging to master. Right now I have to push the button myself every time. ⚠️

😍 Contributions

Contributions are welcome.

The main point of interaction is the Issues.

We also run the public Trello Board to track progress and develop roadmaps.

The official development language at the moment is Russian, because 100% of our users speak it. We don't want to introduce unnecessary barriers for them. But we are used to writing commits and comments in English and we won't mind communicating with you in it.

🐛 How to report a bug or propose a feature?

Open a new issue. Explain your idea or proposal in all the details. Attach a screenshot or wireframe.

If it's a bug, make sure you clearly describe "observed" and "expected" behaviour. It will dramatically save time for our contributors and maintainers.

When ticket receives a label it is automatically added to our board in Trello to track further progress.

😎 I want to write some code!

Open our Trello to see the most important tickets at top. Then go to Issues and pick one you like. Don't forget to leave a comment inside that you're getting it. Our maintainers track them and update the board.

For small fixes just open a PR. For big changes open an issues first or (if it's already opened) leave a comment with brief explanation what and why you're going to change. Many tickets hang open not because they cannot be done, but because they cause many logical contradictions that you may not know. It's better to clarify them in comments before sending a PR.

Pay attention to issue labels placed on tickets by our maintainers.

  • no label — ticket is new or controversial. Feel free to discuss it but wait for our maintainers' decision before starting to implement it.
  • idea — discussion is needed. Those tickets look adequate, but waiting for real proposals how they will be done. Don't implement them right away.
  • good first issue — good tickets for first-timers. Usually these are simple and not critical things that allow you to quickly feel the code and start contributing to it.
  • bug — the first priority, obviously.
  • improvement — accepted improvements for an existing module. Like adding a sort parameter to the feed. If improvement requires UI, be sure to provide a sketch before you start.
  • new feature — completely new features. Usually they're too hard for newbies, leave them for experienced contributors.

👍 Our top contributors

I would like to press F and give some respects to our best contributors, who spent their own time to make the club better.

👩‍💼 License

MIT

In other words, you can use the code for private and commercial purposes with an author attribution (by including the original license file or mentioning the Club 🎩).

Feel free to contact us via email club@vas3k.club.

❤️