Rockket is designed to reward the user when they complete a task with satisfying behaviour and little easter eggs to create a positive feedback loop and increase motivation. It is encouraged to break down a task into multiple sub-tasks so that you can cross of tasks more often and stay motivated.
Create an account and start using the web version today! Desktop and mobile apps are on the roadmap.
A list of known issues can be found here: known-issues.md.
- Base branch:
main
- Only squash merging allowed to
main
- Before merging
- Ensure all linter warnings are resolved or ignored with a description
- Ensure the changeset is easy to understand (describe the changes in the PR)
- Anything merged to
main
must be deployable
- PostgreSQL database
- Node.js 14 or higher
-
Clone the repo with
git clone git@github.com:floydnant/rockket.git
-
Install the dependencies
npm i
-
Create a database with the name
rockket
and the default credentials -
Add the environment variables by running
npm run init-env
which does the following:- Copy
apps/rockket-backend/.env.sample
->apps/rockket-backend/.env
- Link from
apps/rockket-backend-e2e/.env
toapps/rockket-backend/.env
- Copy
-
Run the db migrations
nx run rockket-backend:db:migrate:dev
Ensure postgres is up and running, then, to run the dev servers, run the serve
targets for rockket-web
and rockket-backend
or simply npm run dev
from the root to do both in one terminal.
The frontend is listening on localhost:4200
while the backend is listening on localhost:3000
.
npm run dev
If you need to run the app on the local network (e.g. for testing on a different device, like a mobile phone) you can run the following and navigate to <Your local IP>:4200/
on the other device.
npm run dev:lan
Please note that if you want to run the serve targets separately, you have to specify the backend base url as an env var manually, i.e.
NG_APP_SERVER_BASE_URL=http://$(ipconfig getifaddr en0):3000 nx run rockket-web:serve:local-network
# and
nx run rockket-backend:serve
- Libraries are located in the
packages
directory - Apps and e2e tests are located in the
apps
directory - Libraries have the tag
type:lib
You can run these commands in both the client and server directories.
All of the following commands support reruns on changes. Simply append --watch
to the respective command and the tests rerun when the source code changes.
nx test rockket-web
nx test rockket-backend
nx component-test rockket-web
nx e2e rockket-web-e2e
nx e2e rockket-backend-e2e
To run linting and formatting for the whole codebase:
npm run lint # only lint
npm run lint:fix # lint and fix fixable linting issues
npm run format # only format
npm run fix # both format and fix linting issues
To run linting for a specific project:
nx lint rockket-web
nx lint rockket-backend
For manual type checks without an LSP just run npm run dev
or the respective serve
or build
targets for the project.
You can also run nx show project <projectName> --json false
for a list of targets (scripts to run).
- Build system: Nx
- Frontend framework: Angular
- State management: NgRx
- Styling: Tailwind
- Backend framework: NestJS
- ORM: Prisma
Hi I'm Floyd Haremsa, you can reach me through floyd.haremsa@berlin-bytes.de, I'm happy to answer any questions you might have or just to have a chat.