This project is a web-application being developed to support people with a deficit in their central auditory skills with or without hearing loss, i.e. users of cochlear implant or hearing aids. Intended to be used by children older than 7 years, adults, elderly subjects; anyone who wants to improve their auditory skills, training their brain to improve the understanding of what is heard. It is projected to contain several series of media exercises, which should be added incrementally.
Our current version is here : http://brainup.fun && http://31.184.253.199/ (test user default@default.ru password). Now you as a user can register and start doing exercises.
Our road map https://github.com/Brain-up/brn/blob/master/roadmap.md. Product Vision https://github.com/Brain-up/brn/wiki/Product-Vision.
- Additional description with links to analogous applications: https://docs.google.com/document/d/1UKPE9ykj16JG6FZKoxqCoXI6ehWRhyXZnDNxPcaFLWQ/edit
- Scientific basis of the project: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6417420/
- https://wearecommunity.io/communities/community-platform/articles/753 01.12.2020 russian
- https://habr.com/ru/company/epam_systems/blog/530824 01.12.2020
- https://anywhere.epam.com/volunteer/pages-1/brainApp.html (will be fixed soon) 05.05.2020
- https://info.epam.com/content/infoepam/topics/locations/russia/articles/2020/may/pro-bono-volunteers_ru.html (only for epamers)
- https://info.epam.com/topics/global/industries/articles/2020/jul/brain-up_en.html (only for epamers)
We use the latest technologies and best practices, so developers will get to know new tools and their usage, obtaining a useful experience. We will review your code, give you advice to improve it and listen to your suggestions. Most importantly being an open source project you can show your work in it to any person interested, proving your development expertise with actual examples of your work flow and code samples in a live application.
- Front-end developers: Ember, Angular.
- Server-side developers: Kotlin and Java. Components, REST and algorithms.
- IoS developers.
- Android developers.
- DevOps: Continuous integration and delivery.
- UX: Creative designers for UX research and prototype testing. Your ideas how to improve user retention are welcome.
- Paintest: for creation pictures for exercises.
- Sign language specialist to create/improve content.
- QA engineers.
Join us! Learn something new, try your skills, prove yourself, get experience and get ahead!
- Back-end: KOTLIN + Spring boot. Rest api as integration layer.
- Front-end : TBD - Ember, Angular.
- DB: Postgres13.
- TestContainers for running integration tests.
Project on Epam Plus (for Epamers only): https://plus.epam.com/projects/21598/overview
You can write directly in Telegram to Elena Moshnikova (project founder and tech lead) https://t.me/ElenaLovesSpb
or to project email brainupproject@yandex.ru describing your interests or any questions you may have.
Also we have project chats:
dev team Telegram chat: https://t.me/+R-6ThlxgP5QyZmMy
QA team Telegram chat: https://t.me/+EJs2EH5mTKs4YWE6
Autotest Python team chat: https://t.me/+Kv0uYVqMwQNkNzRi
https://awclub.atlassian.net/wiki/spaces/EPMLABSBRN/overview (https://github.com/Brain-up/brn/wiki)
Product Vision: https://github.com/Brain-up/brn/wiki/BRN:-Product-Vision (https://awclub.atlassian.net/wiki/spaces/EPMLABSBRN/pages/2130224/BRN+Product+Vision)
https://awclub.atlassian.net/jira/software/c/projects/EPMLABSBRN/issues (https://github.com/Brain-up/brn/issues)
https://github.com/Brain-up/brn/wiki/Coding-Standards
- FrontEnd: Install node v12 or above https://nodejs.org/en/download/
- FrontEnd: Install yarn 1.19 or above https://yarnpkg.com/lang/en/docs/install
- FrontEnd: In order to make any commit you need Husky dependency be installed (you can use frontend build to get it)
- BackEnd: Install Docker https://hub.docker.com/search/?type=edition&offering=community
- BackEnd: Idea
Go to location where the project is download for example C:\brn\brn\frontend-angular
📄 See here
📄 See here
- Install docker to your machine. The project uses postgres 11.5. Documentation Currently for local development we use postgres docker image To install docker use:
2.1 To run docker db image use the following command:
- on linux\windows:
docker run --name postgres_dev -d -p 5432:5432 -e POSTGRES_DB=brn -e POSTGRES_PASSWORD=$PG_PASSWORD -e POSTGRES_USER=$PG_USER postgres:13
$PG_PASSWORD
and $PG_USER
are environment variables and could be replaced directly or added to your operating system.
how to add in win10.
2.2 Alternatively, you can just replace the variables by "admin", the default user and password for development:
docker run --name postgres_dev -d -p 5432:5432 -e POSTGRES_DB=brn -e POSTGRES_PASSWORD=admin -e POSTGRES_USER=admin postgres:13
- Run command 'gradle build' from main project folder to build project with tests.
- Application.kt is the main class to run application from Idea for example.
- Get Postman Collection from https://www.postman.com/koylubaevNT/workspace/brainup/collection/2686902-d91ba307-e131-4d4f-a308-0a272e063c95 and environment from https://www.postman.com/koylubaevNT/workspace/brainup/environment/2686902-95b2c495-82a1-4244-83c7-dad7f8efebd7.
- Make post request from "Firebase" folder "Get Authorization Token" using credentials.
- Then you can call all other end-points from this Postman collection end-point specification is here: https://github.com/Brain-up/brn/blob/master/api-contract/api.raml
- use https://brainup.site/admin/swagger
Note that if you are using IntelliJ, you may want to use version 2019.2 and later to avoid issues with new kotlin plugin.
- Script to generate month tasks statistics (you can use it with
brnlogin
request inTest
tab)
(back-end part and front-end parts, but it is rather slow. it is better to use GitPod) From console, from project's folder, execute:
docker compose up --build
Alternatively, use daemon mode (no console output):
docker compose up --build -d
Local REST API will be accessible at http://localhost:8081/api/swagger-ui.html Public is always here https://brainup.site/admin/swagger (login with ADMIN role user)
docker useful command:
docker ps -a # for show all containers
docker stop idContainer # for stop running container
docker rm $(docker ps -a -q) # Remove all stopped containers
- Get a task assigned in JIRA (for epamers) or issue (https://github.com/Brain-up/brn/issues) you chose and discussed it with @ElenaSpb, send your githubnick to her.
- Create branch from dev with the codename of your task, i.e. #GitHub_TaskNumber#.
- Implement your task, do not forget to write tests. Remember to follow project's coding standards: https://github.com/Brain-up/brn/wiki/Coding-Standards.
- Create pull request with task name and description about what was done.
- Notify the team in our skype chat and wait for reviews. At least one reviewer is necessary, but more can be added in a case by case basis.
- The task gets merged by a project maintainer.
- check that build job on jenkins passes successfully.
- Before load config files check them with https://orfogrammka.ru/ service.
- Integration tests does not run in build process, it can/should be run locally with run job verification/integrationTests.
- Please refer for details to kb resources: https://github.com/Brain-up/brn/wiki/Coding-Standards
- Always use Ctrl+Alt+L in IDEA to update code formatting before committing!
- Use
gradlew ktlint
command to check code style. If this task fails, the related report with error details can be found in the 'build\reports\ktlint' folder. - It is also possible to use
gradlew ktlintFormat
command to fix code style errors automatically. - Please note that if
gradlew ktlint
task fails, project build will fail also. - For
api.raml
validation, you can use [Api Designer] (https://rawgit.com/mulesoft/api-designer/v0.4.2/dist/index.html).
https://github.com/Brain-up/brn/wiki/Kotlin-request-dto-validation-with-annotations
use V2yearmonthday_taskNumber
for example V220210804_899
.
Use format '#GitHub_TaskNumber-# issue description' or 'Merge description'. Issue number must be in range [0-1999]
- https://sonarcloud.io/code?id=Brain-up_brn our project sonar cloud.
- To view test coverage locally
2.1 use jacoco gradle task locallyjacocoTestReport
2.2 command line:gradle jacocoTestReport
- Pay attention that main local metric would be a little bit different from the one in Sonar cloud.
- EPAM for Jira/Confluence, test instance and Jenkins, for contribution support program.
- JetBrains for IDEA licenses
- Selectel for public instance
- GitHub for code place and actions where we run CI/CD
- Yandex for Yandex Speech Kit service and free account to use it
CC0 1.0 Universal https://joinup.ec.europa.eu/licence/cc0-10-universal-cc0-10-public-domain-dedication