Skip to content

Commit

Permalink
New documentation site + missing pages (#145)
Browse files Browse the repository at this point in the history
- New theme
- Coding style page
- Roadmap page
- Typo fixes
  • Loading branch information
theperu authored Feb 5, 2024
1 parent 8cb0d8f commit 366238e
Show file tree
Hide file tree
Showing 13 changed files with 456 additions and 87 deletions.
71 changes: 71 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Docs to Pages

on:
push:
branches:
- "main"
paths:
- "docs/**"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true

jobs:
# Build job
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1' # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
cache-version: 0 # Increment this number if you need to re-download cached gems
working-directory: '${{ github.workspace }}/docs'
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
- name: Build with Jekyll
# Outputs to the './_site' directory by default
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
env:
JEKYLL_ENV: production
- name: Upload artifact
# Automatically uploads an artifact from the './_site' directory by default
uses: actions/upload-pages-artifact@v1
with:
path: "docs/_site/"

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
7 changes: 7 additions & 0 deletions docs/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
source 'https://rubygems.org'

gem "jekyll", "~> 4.3.3" # installed by `gem jekyll`
# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2

gem "just-the-docs", "0.7.0" # pinned to the current release
# gem "just-the-docs" # always download the latest release
85 changes: 85 additions & 0 deletions docs/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
colorator (1.1.0)
concurrent-ruby (1.2.2)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.16.3)
forwardable-extended (2.6.0)
google-protobuf (3.25.1-arm64-darwin)
google-protobuf (3.25.1-x86_64-linux)
http_parser.rb (0.8.0)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
just-the-docs (0.7.0)
jekyll (>= 3.8.5)
jekyll-include-cache
jekyll-seo-tag (>= 2.0)
rake (>= 12.3.1)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.0.4)
rake (13.0.6)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.6)
rouge (4.2.0)
safe_yaml (1.0.5)
sass-embedded (1.69.5-arm64-darwin)
google-protobuf (~> 3.23)
sass-embedded (1.69.5-x86_64-linux-gnu)
google-protobuf (~> 3.23)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
unicode-display_width (2.5.0)
webrick (1.8.1)

PLATFORMS
arm64-darwin-23
x86_64-linux

DEPENDENCIES
jekyll (~> 4.3.3)
just-the-docs (= 0.7.0)

BUNDLED WITH
2.3.26
72 changes: 0 additions & 72 deletions docs/README.md

This file was deleted.

8 changes: 8 additions & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: Sossoldi
description: Making an open source wealth management app for everyone.
theme: just-the-docs

url: https://github.com/RIP-Comm/sossoldi

aux_links:
View it on GitHub: https://github.com/RIP-Comm/sossoldi
21 changes: 14 additions & 7 deletions docs/PR-guide.md → docs/contributing/PR-guide.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
---
title: How to contribute to the project
layout: default
nav_order: 3
has_children: true
---
# GitHub for beginners

So you want to partecipate in our project but you don't know how? Don't worry, this guide is here for you.
In the next steps we will assume that you already completed the environment setup. If you haven't, make sure to follow *the first 3 steps* of [this guide](setup.md) first.
In the next steps we will assume that you already completed the environment setup. If you haven't, make sure to follow *the first 3 steps* of [this guide](../setup/setup.html) first.

## Step 1: Download GitHub Desktop

This is pretty straightforward, go to this [link](https://desktop.github.com/) and download GitHub Desktop. With this it will be easier to manage and submit the changes that you will do.
This is pretty straightforward, go to this [link](https://desktop.github.com/) and download GitHub Desktop. With this it will be easier to manage and submit the changes that you will do.
After the download, set up your account.

## Step 2: Clone the repository

Now comeback to your repository on GitHub and click on Code -> Open with GitHub Desktop

<div>
<img src="./assets/doc-guide/Clone-repo.png" width="1000" alt="Sossoldi icon">
<img src="../assets/doc-guide/Clone-repo.png" width="1000" alt="Sossoldi icon">
</div>

This will open GitHub Desktop and it should ask you to add the path in which you want to save the folder with the project. Then click on clone.
Expand All @@ -27,7 +34,7 @@ When you are done, come back to GitHub Desktop and it should show the changes th
**NOTE:** most of the times you will see a lot changes here but you should select ONLY the files that you changed and are needed for the feature that you have implemented. You should also remove all the ones edited/created by your IDE.

<div>
<img src="./assets/doc-guide/GitHub-Desktop.png" width="1000" alt="Sossoldi icon">
<img src="../assets/doc-guide/GitHub-Desktop.png" width="1000" alt="Sossoldi icon">
</div>

## Step 5: Push your changes
Expand All @@ -36,14 +43,14 @@ On the top right now you should see the option to push your changes, after that

## Step 6: Create the pull request

Congrats this is the last step! Now go back to the [main repository](https://github.com/RIP-Comm/sossoldi/pulls) and create a new pull request by clicking on the top right.
Congrats this is the last step! Now go back to the [main repository](https://github.com/RIP-Comm/sossoldi/pulls) and create a new pull request by clicking on the top right.

<div>
<img src="./assets/doc-guide/PR-screen.png" width="1000" alt="Sossoldi icon">
<img src="../assets/doc-guide/PR-screen.png" width="1000" alt="Sossoldi icon">
</div>

Tap on “compare across forks” and then select your repository.
After that tap on “Create pull request” and write a title and a description for it.
After that tap on “Create pull request” and write a title and a description for it.
Congratulations now you are ready to submit it!

Thank you for taking your time in helping our project!
Expand Down
62 changes: 62 additions & 0 deletions docs/contributing/coding-style.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: Coding style
layout: default
nav_order: 3
parent: How to contribute to the project
---

# Coding style

If you want to help out with the project you should keep in mind the following guidelines.

## Formatting

- Follow the official Dart Style Guide for code formatting.
- Use consistent indentation.
- Limit line length to 80 characters.

## Imports

Import packages using the following format:
```bash
import 'package:flutter_riverpod/flutter_riverpod.dart';
```
Use relative imports for local files:
```bash
import '../../../providers/accounts_provider.dart';
```

## Break down pages into separate widgets

In order to improve readability of our code we should break down each page into separate widgets stored in separate files, with each of them representing a section of the page.
Each page should be wrapped in a folder with the same name containing a widgets subfolder that stores custom widgets extracted from that page.
```bash
Example:
├── transactions_page.dart
└── widgets
├── accounts_tab.dart
├── categories_tab.dart
├── custom_sliver_delegate.dart
├── list_tab.dart
└── month_selector.dart
```
The widgets subfolder should contain widgets that are specific to a particular page, whereas the ones that are shared across multiple pages should go in /lib/custom_widgets.

## Use trailing comma

Flutter code often involves building fairly deep tree-shaped data structures, for example in a build method. To get good automatic formatting, we recommend you adopt the optional trailing commas. The guideline for adding a trailing comma is simple: Always add a trailing comma at the end of a parameter list in functions, methods, and constructors where you care about keeping the formatting you crafted. This helps the automatic formatter to insert an appropriate amount of line breaks for Flutter-style code.
See here.

## Avoid Copy/Paste:

Do not copy and paste code blocks without proper understanding. Instead of duplicating code, consider creating a shared function or method and if you do so add a line in the [Reusable Widget List](widget-list.html).

## File Structure:

Organize files in a clear and consistent folder structure. Group related files together, such as placing all providers in a 'providers' folder.

## Naming Conventions:

Follow camelCase for variable and function names. Use clear and descriptive names for variables, functions, and classes.

By following these coding styles, you will help ensure consistency, readability, and maintainability of codebase in the project.
28 changes: 28 additions & 0 deletions docs/contributing/widget-list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: Widget list
layout: default
nav_order: 4
parent: How to contribute to the project
---

# Resuable widget list

The following is a list of all the custom widgets that we are currently using in our project. Before implementing something from zero you should check if there is a widget already available here.
If you create a new widget make sure to also update the list here so that everyone can use it in the future.

- account_modal
- accounts_sum
- alert_dialog
- budget_circular_indicator
- default_card
- default_container
- line_chart
- transaction_list
- recurrence_selector.dart
- type_tab
- recurrence_list_tile
- label_list_tile
- details_list_tile
- category_selector
- amount_section
- account_selector
Loading

0 comments on commit 366238e

Please sign in to comment.