Code Monkey home page Code Monkey logo

prkl's Introduction

Assembler

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 CircleCI
trunk CircleCI

Documentation:

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 and known issues

Backlog can be found here. For more user-friendly way to view suggested improvements check unfinished tasks and known issues.

Usage

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.

Development

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.

Tests

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.

Backend unit tests

The server has unit tests written with Jest. You can run them with cd server and npm run start:test

Run all tests in containers (like they are run on CI)

npm test

Miscellaneous Commands

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:

Build frontend and copy to server directory

npm run build:client

prkl's People

Contributors

joonashak avatar kevhann avatar jonkur avatar marinellalaaksonen avatar riiraty avatar arkmus avatar fir3porkkana avatar happoni avatar vuolen avatar annakuokkanen avatar vekkumasa avatar tikibeni avatar essitepp avatar mikxdi avatar triviaali avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.