Assembler is a tool for automating division of students into project groups. It goes by the nickname "prkl" which is shorthand for Projektiryhmäytymistyökalu. More comprehensive description here.
Branch | CI Status |
---|---|
master |
|
trunk |
Basic documentation is listed here. If you are member of development group in Ohjelmistotuotantoprojekti-course, you might be interested in more "beginner-friendly" explanation in wiki (in Finnish).
Backlog can be found here. For more user-friendly way to view suggested improvements check unfinished tasks and known issues.
Assembler uses npm
to configure scripts, including docker-compose
commands for development and testing. The commands outlined in this section should be run at project root unless preceded with a cd
command and the directory where the related package.json
is located.
Hot-loading of changes works currently only separately with backend and frontend. I.e., if you are running the backend in development mode, changes in the frontend are not loaded.
First start the backend server in development mode:
npm run dev
If setting up the development environment for the first time, or if the database is empty for any reason, seed the database by visiting:
http://localhost:3001/seed
And follow with launching the frontend with CRA's standard development server:
cd client/
npm start
NPM configuration is stored separately for frontend and backend in client/
and server/
, respectively. If you want to use npm
directly, cd
into these folders. You will need to provide the database service yourself and probably tinker with the configuration if you do not want use Docker.
Cypress is used for end-to-end tests. Deployment should always be conditional on all tests passing.
To use cypress locally, launch Assembler in development mode as outlined above. Then do:
cd e2e/
npm run test:dev
This command configures Cypress and our tests to use different URL's for client and server requests, enabling you to take advantage of hotloading on both sides of the stack when writing tests. It is recommended that you have Cypress installed globally (npm i -g cypress
) for local development.
The server has unit tests written with Jest. You can run them with cd server
and npm run start:test
npm test
Most of the commands defined in various package.json
files accross the project are meant to be run through Docker. However, here are some you may find useful to run manually:
npm run build:client