Community platform for dancers
Do you want to get a practical experience, learn to work in international team and participate in open source project?
- Nuxt.js – Vuejs framework, which is used as Static Site Generator.
- Tailwind CSS – utility-first CSS framework.
- Nuxt Composition Api – provides a way to use the Vue 3 Composition API with Nuxt-specific features.
- Firebase – used as Serverless framework with Firestore realtime database, authentication and cloud functions.
- Mailgun – used as an email delivery and tracking service.
- Sentry – monitoring platform to log exceptions and errors.
- Netlify – CDN, CI and Hosting provider, that deploys site on each commit.
- Go to Firebase Console click
Add project
, enter any name, clickContinue
, uncheckEnable Google Analytics for this project
, clickContinue
. - Under
Get started by adding Firebase to your app
click 3d icon (Web), enter nameWeb
, uncheckFirebase Hosting
, clickRegister app
, copy generatedfirebaseConfig
. - Go to
Authentication
, switch to tabSign-in method
, clickEmail/Password
and enable both triggers (password and email link); enableGoogle
. - Go to
Cloud Firestore
, clickCreate database
, selectStart in test mode
, clickNext
, choose regioneur3
. - Transform
firebaseConfig
value (from step 2) to one line JSON. This tool might help you. - Clone this repository and open the project folder.
- Copy
.env.example
file to.env
file and set value ofFIREBASE_CONFIG
to one line JSON you got from step 5.
To activate all services and features see section Services
below.
- Install nvm
- Run
nvm install 14
- Run
nvm use 14
- Run
yarn install
- Run
yarn dev
To activate all services and features see section Services
below.
Watch video tutorial.
Read How to deploy on Netlify?.
- Push your branch to github.
- Sign in to Netlify.
- Click
New site from Git
. - Choose
GitHub
and select your repository. - Select your branch.
- Build command:
yarn build
. - Publish directory:
dist
. - Click
Advanced build settings
and empty value forFunctions directory
as we don’t use Netlify functions. - Click
New variable
and add all keys and values from.env
file (URL
and some other variables are set automatically). - Click
Deploy site
.
To activate all services and features see section Services
below.
Activate only those services that you need. In most cases you don't need all of them.
- Go to
Authentication
, switch to tabSign-in method
find sectionAuthorized domains
, clickAdd domain
and add new.
- Enable Maps JavaScript API, Places API and Geocoding API in the Google Cloud Console.
- Enable Billing on the Google Cloud Project.
- Create mailgun account.
- Create domain and setup DNS.
- Create API key.
- Enable Pub/Sub, Scheduler, Build API in Google Cloud Console.
- Install Firebase-CLI locally and init project with
firebase init
. - Add mailgun confguration to Firebase:
firebase functions:config:set mailgun.key="" mailgun.domain="" mailgun.host=""
- Deploy Firebase with
firebase deploy
. - Setup hooks in Mailgun.
- Create firestore index (send test mail, see logs, find link to create index).
We encourage you to contribute to WeDance!
We expect contributors to abide by our underlying code of conduct. All conversations and discussions on GitHub (issues, pull requests) and across wedance.vip must be respectful and harassment-free.
Remember that communication is the lifeblood of any Open Source project. We are all working on this together, and we are all benefiting from this software. It's very easy to misunderstand one another over asynchronous, text-based conversations: When in doubt, assume everyone within this project has the best intentions.
We are all humans trying to work together to improve the community. Always be kind and appreciate the need for trade-offs. ❤️
A great way to contribute to the project is to send a detailed report when you encounter an issue.
See issues or Create an issue.
Documentation is almost always a great place to start contributing to a new project. WeDance is an Open Source, community-driven project. Therefore, providing and maintaining quality documentation is one of our most important jobs. You can find more information in our docs guide!
Refactoring, which involves improving the code without modifying behavior, is a great place to help out! Generally speaking, you can rely on existing tests to ensure that your refactor doesn't introduce any unexpected behavior. If an area isn't well tested, you might be asked to include a regression test with your refactoring PR. Refactors can touch many files, so we encourage breaking big changes into small PRs.
Fixing bugs is a super fast way to improve the experience for our users! When you're fixing bugs, we appreciate communication in a GitHub issue. If an issue exists, please claim that issue and link it in your PR, otherwise creating an issue is the best first step! Be sure to surround bug fixes with ample tests; bugs are magnets for other bugs. Write tests around bugs!
Building features requires a lot of communication, but we'd love to have your help with this too! Features tend to be subjective and might spur some debate. Be sure to create an issue for new features before getting started! If your feature involves design changes, including design mockups can be very helpful. As always, when in doubt, ask!
We'd love to see your pull requests, even if it's just to fix a typo!
However, any significant improvement should be associated to an existing feature request or bug report.
- Setup project locally (see Setup).
- Make changes to code.
- Checkout new branch and commit your changes.
- Deploy to Netlify.
- Create a Pull Request and include a link to your Netlify demo.
As you might have noticed already, we are using ESLint to enforce a code standard. Please run yarn lint
before committing your changes to verify that the code style is correct. If not, you can use yarn lint --fix
to fix most of the style changes. If there are still errors left, you must correct them manually.
We use Conventional Commits. See examples of good commits and bad commits.
Code Editor: VSCode with following plugins:
Browser: Chrome with extensions:
This site is a Nuxt.js application. See Directory Structure and official guide for more information. Also most of folders in this repository has a README.md
file.
functions
folder contains Firebase Cloud Functions.
We are all humans trying to work together to improve the community. Always be kind and appreciate the need for tradeoffs. ❤️