I've started to develop this project to implement fast and flexible solution for sharing knowledge and experience between people.
- Spring Backend (with API)
- React + Redux Frontend
- React Hot Reload (using webpack-dev-server)
- Spring Hot Reload (using spring-boot-devtools)
- PostgreSQL database
- Jest + Enzyme (Unit + Snapshot testing)
Clone the repository
git clone https://github.com/technoboom/it-academy
Open your terminal and type:
./mvnw spring-boot:run
Than you can navigate to the page http://localhost:8080/api to see all available methods and links.
To enabled hot reload you should run the backend ./mvnw spring-boot:run
and run webpack-dev-server with npm run start
project
│ .mvn - maven specific properties
│ node - local copies of node and yarn
│ node_modules
│ target
└───frontend
│ │ __test__ - jest tests
│ │ config - wepback, karma configs
│ │ dist - compiled bundles
│ └───src
│ │ components
│ │ reducers
│ │ ...
│
└───src.main.java.com.technoboom
│
│ controllers
You can run Jest testing npm run test.
Command npm run test:coverage outputs the code coverage
and produces ./coverage directory with json and html reports
- Multiple languages support
- Authorization
- Managing courses (CRUD) from user's account
- Managing lesson to the courses
- Commenting system for the courses and lessons
- Private messages between tutors and students
- Passing courses
- Quizzes
- Automated tasks for different languages
- Certificates
- Forum
- REST API - Java (Spring)
- Database - PostgreSQL
- Client - React, Redux
- Authorization - JWT
- Backend Testing - JUnit 4
- JavaScript Testing - Jest + Enzyme
- Webpack 2
- Spring: https://spring.io/
- Jest: https://facebook.github.io/jest/
- Redux: http://redux.js.org/