Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/alexisanzieu/acti

Reusable open source platform made to centralize whatever you want (activities in Quebec in this case)
https://github.com/alexisanzieu/acti

chakra-ui nextjs react supabase vercel

Last synced: 29 days ago
JSON representation

Reusable open source platform made to centralize whatever you want (activities in Quebec in this case)

Awesome Lists containing this project

README

        




Reusable open source platform made to centralize whatever you want (activities in Quebec in this case).

[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=AlexisAnzieu_Acti&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=AlexisAnzieu_Acti)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=AlexisAnzieu_Acti&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=AlexisAnzieu_Acti)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=AlexisAnzieu_Acti&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=AlexisAnzieu_Acti)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=AlexisAnzieu_Acti&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=AlexisAnzieu_Acti)
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)


About
Tiers
Features
Installation
Database

---

## About

After two years spent surveying Quebec, an idea popped into my head: why not referencing all theses adventures within a hand-sewn website? So I could also implement all the JS fatigue in one place 💪

## Tiers

This idea uses a lot of tiers library/framework/Saas products without which it can't work. All of them are free to use as long as you develop an open source project.

### Saas Product

- **Backend API**: Vercel
- **Database**: Supabase
- **Deployment**: Vercel
- **Code quality**: SonarCloud
- **Analytics**: Google Analytics
- **Newsletter**: Sendinblue

### Very useful JS libraries

- **Styling**: Chakra-UI
- **Language**: JS/Typescript/React
- **Framework**: NextJS
- **Map**: Leaflet
- **Form validation**: Formik
- **Internationalization**: I18next
- **Date calculation**: Dayjs
- **Code formatting**: Eslint

## Installation

1. Make sure that you have [nodeJS](https://nodejs.org/en/) installed on your machine.
2. Fill the [.env.example](.env.example) file accordingly the instructions then rename it to `.env`.
3. The backend is decoupled from the frontend and lives in `pages/api/` folder. Here is where Supabase SaaS is called but you could replace it by any external services.

## Features

- Analytics
- [Different rendering strategies](https://www.patterns.dev/posts/rendering-patterns/) for speediness (CSR on the main list and SSG for singleton pages)
- Filtering
- Internationalization
- Map service
- Searching

Screen Shot 2021-12-23 at 1 25 14 PM

Screen Shot 2021-12-23 at 1 26 43 PM

Screen Shot 2021-12-23 at 1 27 28 PM

## Database

Supabase SaaS uses Postgresql under the hood and the schema is built like this:
| column name | data type |
| ---------------- | ------------------------ |
| compagny | text |
| picture_url | text |
| address | text |
| city | text |
| postal_code | text |
| phone | text |
| price | bigint |
| carbon_footprint | bigint |
| id | uuid |
| email | text |
| website | text |
| created_at | timestamp with time zone |
| name | jsonb |
| social_media | json |
| description | jsonb |
| location | json |
| review | jsonb |
| seasons | ARRAY |

Openapi specifications allows us to generate [a typescript file on fly](https://supabase.com/docs/reference/javascript/generating-types) corresponding to this schema. You can find it in the repo [here](/type/supabase.ts).