-
Fork the project.
- Clone the repo
git clone https://github.com/JordiNodeJS/freeforever
- Change directory to the project directory
cd freeforever
-
npm install
😎 it'll install all dependencies to run the project -
npm run dev
👉 to start development server or -
npm run build
👉 to compile the project andnpm run preview
👉 to see the production server working -
Trouble issues: error with AnimXYZ -> install it with the flag --legacy-peer-deps
npm i --legacy-peer-deps @animxyz/core
npm i --legacy-peer-deps @animxyz/react
-
Running the localhost project
- Create firebase account and copy the firebase config to file .env which you should've created at project's root.
-
Project will be running in the browser. Open http://localhost:3000 to view it in your browser.
VITE_API_KEY=****
VITE_AUTH_DOMAIN=****
VITE_PROJECT_ID=****
VITE_STORAGE_BUCKET=****
VITE_MESSAGING_SENDER_ID=****
VITE_APP_ID=****
- For loading images you should have a Cloudinary account and create environment variable as:
VITE_API_CLOUDINARY_URL_UPLOAD=***
VITE_API_CLOUDINARY_CLOUDNAME=***
- Then, you should config some set in your Cloudinary account:
- Go to settings and in the tab Upload scroll at Upload presets Option and set it as Unsigned mode in the cloud name.
-
Vite ⚡ (French word for ⚡"quick", pronounced /vit/, like "veet") is a build tool that aims to provide a ⚡faster and leaner development experience for modern web projects. ⛔ creat-react-app, why? 👉 It's slow, just bloody sluggish. Vite, under the hood, runs esbuild to compile the code. 💪 Written in Golang, a compileted language, result: blazing fast builds 👇
- Welcome 🎉💗💓 Tailwind CSS works by scanning all of your HTML files, JavaScript components, and any other templates for class names, generating the corresponding styles and then writing them to a static CSS file. It's⚡fast, flexible, and reliable — with zero-runtime. Goodby ⛔Bootstrap yet the bundle size is still too big.
- daisyUI is a library that provides a set of components that can be used to build a responsive, mobile-first, and accessible UI.
- Postcss 🏎⚡ is used to elimanate the need for a CSS preprocessor and to make it easier to add features like autoprefixing and custom properties. Goodby 🚫SASS. Postcss does tree-shaking; it's used to remove unused code from the bundle.
- cssnano is used to minify the css.
-
- React Hooks
- React Router v6
npm install react-router-dom@6
- Redux-ES
- React-Redux
npm install react-redux redux
npm install --save-dev @redux-devtools/core
- Async Logic and Data Fetching
-
validator.js is a JavaScript library that validates the structure of JavaScript objects.
-
react-toastify is a React component library that provides a simple way to display toast messages.
npm install --save --force react-toastify
-
Backend with Firebase
-
Register:
- With your own email.
- By Gmail account.
-
Login
-
Private Routes
- You can access them by login.
-
Post's Edition with Firebase.
- CRUD operations: Create, Read, Update and Delete your posts recorded in a database as Firebase.
You've found a bug in the source code, a mistake in the documentation or maybe you'd like a new feature? You can help us by 👇
Submitting an issue on GitHub
- On GitHub.com, navigate to the main page of the repository.
- Under your repository name, click Issues.
- Click New issue.
- Type a title and description for your issue.
Before you create an issue, make sure to search the issue archive -- your issue may have already been addressed!
Please try to create bug reports that are:
- Reproducible. Include steps to reproduce the problem.
- Specific. Include as much detail as possible: which version, what environment, etc.
- Unique. Do not duplicate existing opened issues.
- Scoped to a Single Bug. One bug per report.
There are 2 main work flows when dealing with pull requests:
- Pull Request from a forked repository
- Pull Request from a branch within a repository
Here we are going to focus on 2. Creating a Topical Branch:
-
First, we will need to create a branch from the latest commit on master. Make sure your repository is up to date first using
git pull origin main
Note:
git pull
does agit fetch
followed by agit merge
to update the local repo with the remote repo. For a more detailed explanation, see this stackoverflow post. -
To create a branch, use
git checkout -b <new-branch-name> [<base-branch-name>]
, wherebase-branch-name
is optional and defaults tomain
.Use a standard convention for branch names. For example,
<your-name>-dev
. It will be easier to track your pull requests if you use this convention.I'm going to create a new branch called
jsm-dev
from themain
branch and push it to github.git checkout -b jsm-dev main git push origin jsm-dev
-
To create a pull request, you must have changes committed to your new branch.
-
Go to Pull Requests and click on the
New Pull Request
button. -
Select the
main
branch as thebase
branch and thejsm-dev
branch as thecompare
branch. -
Follow the template and fill in the proper information for the pull request.
-
Click on the
Submit
button. -
You have successfully created a pull request. Now wait for mentor approval. Once approved, you can merge the pull request.
Copyright 2022 ©
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.