https://github.com/notesclub/notesclub
Discover Livebook notebooks (Elixir)
https://github.com/notesclub/notesclub
elixir livebook phoenix
Last synced: 6 months ago
JSON representation
Discover Livebook notebooks (Elixir)
- Host: GitHub
- URL: https://github.com/notesclub/notesclub
- Owner: notesclub
- License: mit
- Created: 2022-08-15T10:08:37.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-29T12:36:04.000Z (8 months ago)
- Last Synced: 2024-08-30T13:01:45.330Z (8 months ago)
- Topics: elixir, livebook, phoenix
- Language: Elixir
- Homepage: https://notes.club
- Size: 867 KB
- Stars: 76
- Watchers: 1
- Forks: 11
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- Open-Source-Ruby-and-Rails-Apps - notesclub - Notes Club ๐ฅ ๐ (Happy Exploring ๐ค)
README
# Notesclub ยท Discover Livebook Notebooks
Every day we add new Livebook notebooks from Github.
https://notes.club
# Get involved
Welcome to Notesclub!
Feel free to:
- [Take an issue](https://github.com/notesclub/notesclub/issues)
- Propose a new issue
- Refactor existent code
- Add documentation
Thanks!# Run it locally
To start your Phoenix server:
* Install dependencies with `mix deps.get`
* Start the Postgres database with `docker-compose up`
* Create and migrate your database with `mix ecto.setup`
* Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).
## Secrets
To use tests with the `:github_api` tag, and to interact with the GitHub API the project requires a [GitHub API key](https://github.com/settings/tokens/new).
Create a `config/test_secrets.exs` template file.Replace **GITHUB_API_KEY** with a GitHub API Key.
```elixir
# Create a secret.exs file with the following content.
# Replace GITHUB_API_KEY with your github api key.
import Configconfig :notesclub, :github_api_key, "GITHUB_API_KEY"
```To use GitHub API in development, create a similar `config/dev_secrets.exs`
`seeds.exs` already imports some example notebooks so you don't need to download notebooks from GitHub for most things.
Yet, to download new notebooks you can set `GITHUB_API_KEY` as explained above and run:
```elixir
%{page: 1}
|> Notesclub.Workers.RecentNotebooksWorker.new()
|> Oban.insert()
```And to reload all notebooks already present in your db:
```elixir
%{}
|> Notesclub.Workers.AllUserNotebooksSyncWorker.new()
|> Oban.insert()
```### Sign in with Github functionality
To set up this functionality during development, follow these steps to create a GitHub OAuth application:
1. **Log in to GitHub**: Sign in to your GitHub account.
2. **Navigate to Settings**: Click on your profile picture in the top right corner, then select "Settings."
3. **Access Developer Settings**: Scroll down to the bottom of the left sidebar and click on "Developer settings."
4. **Create an OAuth App**: Under "OAuth Apps," click on "New OAuth App."
5. **Fill in Details**:
- **Application Name**: Provide a descriptive name for your app.
- **Homepage URL**: Enter the URL where users can learn more about your app.
- **Authorization callback URL**: This is the URL where GitHub will redirect users after they authorize your app. For local development, you can use `http://localhost:YOUR_PORT/auth/github/callback`.6. **Generate Client ID and Client Secret**:
- Once you've filled in the details, click "Register application."
- You'll receive a **Client ID** and a **Client Secret**. These are essential for authenticating with GitHub.7. **Replace Variables in Your Code**:
- Create a `config/dev_secrets.exs` file and replace `GITHUB_OAUTH_CLIENT_ID` and `GITHUB_OAUTH_CLIENT_SECRET` with the actual values you received from GitHub:```elixir
# Create a dev_secrets.exs file with the following content.
# Replace GITHUB_API_KEY with your github api key.
import Configconfig :ueberauth, Ueberauth.Strategy.Github.OAuth,
client_id: "GITHUB_OAUTH_CLIENT_ID",
client_secret: "GITHUB_OAUTH_CLIENT_SECRET"
```# Powered by
Powered by [AppSignal](https://www.appsignal.com) and [Oban Pro](https://getoban.pro)