Giter VIP home page Giter VIP logo

parliament-watch's Introduction

๐Ÿ‘€ Parliament Watch

Citizens are watching

HACKTOBERFEST 2023 ๐ŸŽ‰ - get a free limited-edition sticker on approved PR read more

Table of Content

โญ Goal

We want to record and visualise the Thai parliament information including politicians, assemblies, bills, voting processes, and promises.

This project can be seen as a renovated combination of They Work for Us, Law Watch, and Promise Tracker which aim to support several election era.

๐ŸŒŽ Environments

Name URL
Branch Preview Provided by Cloudflare Pages
Staging (main branch) https://parliament-watch.pages.dev
Production -

๐Ÿฑ Tech Stack

Front-end

Local development

  • Yarn v1 as a package manager
  • Husky and lint-staged will
    • Lint (ESLint) and format (Prettier) code before commiting
    • Validate that commit message is align with conventional commit using commitlint
    • Run svelte-check before pushing
  • For VSCode user, format on save is enabled and prettier-vscode extension will be recommended when open the project.
  • Hygen for a code generation

Deployment pipeline

  • Cloudflare Pages will automatically deploy staging (main branch) and per branch preview.

๐Ÿช„ Useful Commands

Start SvelteKit

Start the project in development mode

yarn dev

Start Histoire

to see/develop custom components from Histoire's stories

yarn story:dev

Generate a new component

For a shared component

yarn gen:component

src/components/ComponentName/ directory will be created with the follwing files:

  • ComponentName.svelte for the component source code.
  • ComponentName.story.svelte for the Histoire's story file. Follow a guide on writing stories.

๐Ÿ—ƒ๏ธ Directory Structure

  • /_templates Hygen's code generation templates
  • /.husky Husky's git hooks
  • /src main source codes
    • /components Svelte's components
    • /mocks Mock data, while we still don't have backend
    • /models Main data structure defined with TypeScript interface
    • /routes Sveltekit's routes
    • /styles Stylesheets, including custom Carbon Design System, tailwind and fonts
  • /static static assets such as logos

๐Ÿญ Design System

The project design system is based on Carbon Design System v10 with some modification. Custom theme is defined with scss in src/styles/carbon/. To reduce overhead on development, we compile Carbon related stylesheet into src/styles/carbon/precompiled.css with yarn compile:sass command.

Typography

Colors

Components

  • Use Carbon Components Svelte
  • We have custom shared component available in src/components/.
    • To see shared components' story, open Histoire in local with yarn story:dev or browse it in the staging/stories
    • See all planned component in Figma file.
  • If the component is not yet developed:
    • If the component is used by only a specific route, create it in src/components/route-name-and-sub-route-if-exist/
    • If the component is shared, run yarn gen:component to generate a new component. Don't forget to update a story file for the component documentation.

Icons

๐Ÿ’พ Data Models

ER Diagram and TypeScript's interfaces are avaiable in src/models

๐Ÿค Contributing Guideline

Please read CONTRIBUTING.md

๐Ÿ“œ License and Terms of Use

Read more at WeVis's Terms of Use (in Thai)

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.