Code Monkey home page Code Monkey logo

parliamentary-system's Introduction

System Parlamentarny

GitHub Workflow Status Crowdin translation status GitHub package.json version Uptime ratio API uptime ratio License

Aplikacja webowa do przekazywania dokumentów Parlamentu Studenckiego.

Tech Stack

api: Strapi

web: Next, React, Chakra UI, Emotion, TypeScript

Ogólne: Docker, GitHub Actions, GraphQL

Environment Variables

Do uruchomienia projektu niezbędne jest uruchomienie poniższego kodu oraz ustawienie poniższych zmiennych

cp .env.example .env && cp api/.env.example api/.env && cp web/.env.example web/.env

.env

  • DATABASE_NAME
  • DATABASE_USERNAME
  • DATABASE_PASSWORD
  • DATABASE_FOLDER

api/.env

  • USOS_CLIENT_ID
  • USOS_CLIENT_SECRET

gdzie klucze do USOS uzyskasz od swojej uczelni

  • DATABASE_NAME
  • DATABASE_USERNAME
  • DATABASE_PASSWORD

tak samo jak wyżej w .env

  • WEB_URL - url frontendu

web/.env

  • NEXT_PUBLIC_API_URL - url backendu
  • NEXTAUTH_URL - url frontendu
  • NEXTAUTH_SECRET - losowo wygenerowany sekret
  • GOOGLE_CLIENT_ID - Google OAuth client id
  • GOOGLE_CLIENT_SECRET - Google OAuth secret token
  • USOS_CLIENT_ID
  • USOS_CLIENT_SECRET

tak samo jak wyżej w api/.env

Instalacja

Wykonaj poniższe polecenia

git clone https://github.com/informatyzacja/parliamentary-system.git
cd parliamentary-system
yarn install --immutable
turbo dev

Deployment

Aby dokonać deployu projektu uruchom podane poniżej polecenia

docker compose -f docker-compose.yml up --force-recreate -V

Contributing

Zgłaszanie błędów mile widziane!

Projekt jest prowadzony przez wyznaczone osoby i nie przyjmuje na ten moment PR z zewnątrz.

parliamentary-system's People

Contributors

dependabot[bot] avatar fatboc avatar github-actions[bot] avatar informatyzacja-ci avatar informatyzacja-ci[bot] avatar jakubwiczkowski avatar omikorin avatar rei-x avatar semantic-release-bot avatar stachowiakdawid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

parliamentary-system's Issues

Enchance profile dropdown design

We do not use private photos for profiles, so consider using some sort of profile icon than name initials.

Another thing, it could be better to hide big photo in dropdown and show e.g. "Name Surname (student index)" in place of e-mail

obraz

Move profile dropdown

Dropdown is now located on the side of the screen. It should be moved away from the edge

obraz

Add latest planned meeting to news page

The dates of future regular meetings are known, so we can show on the news page information about the upcoming meeting.

How about using a check to see if the latest published meeting is from the future? Or in the list of meetings find those that have not yet been held? I think the fastest way will work the first way, assuming that the data entered is one by one and there are no forgetful people to complete the information :)

Change index page behavior

Now index page is empty but login info and logout button (to move in #49).

Index should has some information - as news page (so what we should do with current news page?)

Can't sign in anymore

Steps to replicate:

pnpm i --frozen-lockfile
cd backend/
pnpm i --frozen-lockfile
pnpm build
pnpm run dev

Fix uptime link design

  • add underline on hover
  • don't use userColorModeValue (we do not support dark mode)
  • target="_blank" is missing

obraz

Move to Docker

We encountered a lot of problems with GA deploys, installing dependencies and running pm2. There are also many memory leaks.

Docker allows us to create and replicate ideal environment on the fly, so deploys should flawless after integration on production

Add i18n

Use next-i18n with Crowdin integration

On the frontend side, language selector could be on the left side of the profile button like here
obraz

Change enum places and use as i18n

Not much of a breaking change - it is possible to fill in data in 15 minutes

Meeting place enum need to be a collection - places enum is not good for i18n

obraz

Edit:
After consideration - we should use enum as token for i18n, only important thing should be precision in places translations

Change resolutions behavior

Resolutions, however, do not consist of a single downloadable document, but a main document (mostly pdf/docx) and attachments in any form, e.g. several zip or docx, the best form of implementation would be an accordion that would contain a list of available files from a given resolution (the files and the main document could be indistinguishable and contained in one set of files)

then meeting subpage should have links to certain resolutions or accordions with their info

may need simple change in Resolutions collection

obraz

Moreover, resolutions do not display when meeting is empty, so resolutions should be displayed anyway (circulation vote to be precised)

Change navbar color

Navbar should be in some main color to separate content from clickable actions (I think according to the visual book to match the best color scheme for the site). Changing background of site to more gray is considerable

Consider that the current logo is in SVG and with transparency - preferred conversion to WEBP with a white background or a background consistent with the visual book and good taste

obraz

Fix news design

Both sections of information should take up an optimal amount of space, so that you do not need to scroll the tables in normal use (assume that no one will enter infinitely long texts)
in the desktop version they should be side by side and allow you to read the full information without scrolling, currently there is too much restriction
in the mobile version they should be stacked one below the other and, if possible, also maintain readability (maybe reducing the font?)

obraz

Update & clean README

We need to translate our readme and make it clean with necessary information about project (like in many other open source projects). Easy run should be described too.

Fix 401 error handling

Currently there's no indication when user session expires, which can be confusing for the user. User needs to be logged out instead of showing them 401 error.

Refactor current codebase

Currently there are lots of code duplicates and deep indentations (e.g. here and here), that make code significantly harder to read and reuse in the future. We need to create and sort new components accordingly.

Move to npm temporarily

According to Strapi pnpm will only work from V5. We don't have time to wait so long for a new major

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.