This repository holds the frontend code of meaningfulcode.org.
The full list of projects can be seen at https://github.com/Meaningful-Code/meaningful-projects.
The goal of this website is to promote meaningful and open-source projects looking for new contributors, willing to make a difference. Projects are regrouped in different categories: Health, Education, Environment, Society, and Humanitarian.
Contributors are very welcome, to help us you can:
- ➕ Suggest impactful projects: Finding those is tough, this is the best way to help
- Create a pull request on meaningful-projects or use the online form
- 💻 Contribute to the project: UI, Frontend, Backend. Feel free to ask on Discord
- ❤️ Sponsor the development
But you can also...
- 🐛 Report an issue
- 💡 Suggest a new feature
- 💬 Or just let us know your thoughts on the Discord!
The project uses:
- Frontend: Next.js with App router, React, and Material UI with Typescript.
- Backend (available separately): Node & Express (Typescript), AWS Lambda & DynamoDB.
- Hosting: the full solution currently runs on Vercel.
The rest of the instructions on this page focus on the frontend.
The following steps guide you to setup your environment:
-
Configure the frontend to use local stub data by creating a
.env.local
file containingREACT_APP_FORCE_API=stub
-
Run the development server with
yarn dev
. You should see:yarn run v1.22.19 $ next dev ▲ Next.js 14.0.4 - Local: http://localhost:3000 - Environments: .env.local ✓ Ready in 1059ms
Note that the backend (src/app/api
) is not available publicly for security reasons.
-
Checkout the
api
submodule:git submodule update --init
-
Set the appropriate environment variables in
.env.local
and addMEANINGFUL_DEV=1
-
Run with
yarn dev
.
-
REACT_APP_FORCE_API
environment variable can be set tostub
,local
, API expected athttp://localhost:3001
,- or
prod
.
-
MEANINGFUL_DEV
forces usinglocalhost
for API endpoints
To test a production build, simply run:
yarn build
npm install -g serve
serve -s build
This project is licensed under GPL-v3.