Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/alexisanzieu/acti
- Owner: AlexisAnzieu
- License: mit
- Created: 2021-11-06T23:36:30.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-20T18:29:30.000Z (9 months ago)
- Last Synced: 2024-03-20T19:57:10.049Z (9 months ago)
- Topics: chakra-ui, nextjs, react, supabase, vercel
- Language: TypeScript
- Homepage: https://www.acti.quebec/
- Size: 15.6 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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## 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).