Platform for teachers & students, to offer or search for tutoring.

Overview

tutoring-platform

Contributors Forks Stargazers Issues MIT License

Table of contents

About The Project

Platform for teachers & students, to offer or search for tutoring.

  • User registration with mail confirmation.
  • Authorization and authentication.

Technologies

  • Java
  • SpringBoot
  • Maven
  • Postgres
  • Docker
  • Lombok
  • Swagger
  • Log4j 2
  • Git

Getting started

To setup and run this project:

  1. Create local PostgreSQL database (name your database "simpleascoding").
  2. Overwrite database username and password in application.properties.
  3. Build project with maven.

Roadmap

  • Implement core functionalities
  • Expand database model
  • Create documentation

Contributing

For any information about contributions check here.

License

Distributed under the GPL-3.0 License. Check here for more information.

Comments
  • Reverted the @AuthenticationPrincipal change

    Reverted the @AuthenticationPrincipal change

    • Modified JwtAuthenticationFilter to add only the username of the user to the principal object

    • Modified the testUser endpoint to reflect the change above

    • Modified the changeUserPassword method to reflect the change above

    • Fixed an antMatcher for changeUserPassword in WebSecurityConfig

    Please refer to the Trello task for more details

    opened by Eukon05 2
  • Added a verification email on registration

    Added a verification email on registration

    The user now has to confirm their email address after registration.

    In order to test this functionality, you need to have MailDev installed, or use a real email account and modify the properties file accordingly.

    opened by Eukon05 2
  • Refactoring of UserRepository

    Refactoring of UserRepository

    Klasa: https://github.com/Simple-as-Coding/tutoring-platform/blob/main/src/main/java/pl/simpleascoding/tutoringplatform/repository/UserRepository.java

    L:9
    jest: findByUsername()

    powinno być:
    findByUserName()

    invalid 
    opened by dawciobiel 2
  • Add email confirmation for password change

    Add email confirmation for password change

    Token: -Added data field to store data like password or email -Added @Enumerated annotataion to TokenType TokenType: -Added CHANGE_EMAIL_CONFIRMATION value UserService: -Added rootUrl parametr to changeUserPassword method -Added confirmChangeUserPassword method UserServiceImpl: -Modified changeUserPassword method to sending emails -Added confirmChangeUserPassword method UserController: -Modified changeUserPassword method -Added confirmChangeUserPassword method

    opened by DawidStuzynski 1
  • Removed the `Role` object and implemented pagination on `teachers/all` endpoint

    Removed the `Role` object and implemented pagination on `teachers/all` endpoint

    I've removed the Role object entirely and replaced it with a simple element collection in the user object. This is because in our implementation roles couldn't exist without a user anyway, but they would introduce a problem while fetching every user that has a specified role (please refer to a PR with teacher role implementation or ask on Discord). An element collection is, in my opinion, a better solution, because on the DB side, it creates a table that only consists of a user id and a name of the RoleType enum, and in the code we can use something like user.getRoles().contains(RoleType.TEACHER) and it will just work.

    I've also implemented pagination and sorting on the api/v1/teachers/all endpoint to minimize DB load and allow for, for example, sorting the teacher list alphabetically by surname, etc.

    enhancement 
    opened by Eukon05 1
  • Feature: signing user as teacher, finding all teachers

    Feature: signing user as teacher, finding all teachers

    • created Teacher DTO
    • created UserIsAlreadyATeacherException exception class
    • created findAllByRoleType method in RoleRepository
    • created teacher controller
    • created find all teachers methods in controller, facade, service and implementation
    • edited role-user relation
    enhancement 
    opened by MateuszBednarczyk 1
  • UserService refactor

    UserService refactor

    UserService:

    • Methods getUserById and getUserByUsername now return the full User object or throw an exception, as suggested by @MateuszBednarczyk

    UserServiceImpl:

    • Modified the code to reflect the change above
    • Renamed final strings of the class to fit in with our naming convention, as suggested by @dawciobiel
    enhancement 
    opened by Eukon05 1
  • fix: migrate swagger to openapi

    fix: migrate swagger to openapi

    • Added openapi ui path to application.properties
    • Added openapi dependencies and docs
    • Deleted SwaggerConfig class
    • Deleted useless swagger dependencies and docs
    opened by MateuszBednarczyk 1
  • docs: Added links for documentation

    docs: Added links for documentation

    -added link for apache-commons.md -added link for clean-code.md -added link for design-patterns.md -added link for eclipse-collections.md -added link for git.md -added link for gradle.md -added link for guava.md -added link for ide.md -added link for lombok.md -added link for maven.md -added link for postgres.md -added link for README.md

    documentation 
    opened by dawciobiel 1
  • Feature: User reviews

    Feature: User reviews

    Introduced reviewing users

    A review consists of a star-based rating (1-5) and an optional description (referred in the code as "content").

    Everyone can see what reviews has a user received, as well as all reviews posted by the user. A review can be edited and deleted by its author. The input is validated in the controller using Spring validation, and additionally the Review entity is validated by Hibernate. The reviews are retrieved in pages of 20 elements, to avoid loading a full list of reviews at once. You can also sort the reviews by stars or creation date.

    Endpoints: api/v1/reviews - POST, used to create a review api/v1/reviews/{id} - PUT, DELETE, used to modify or delete a review api/v1/users/{userId}/reviews/received - GET, used to retrieve reviews that the user has received api/v1/users/{userId}/reviews/posted - GET, used to retrieve reviews posted by the user

    I'll provide a full documentation in a separate pull request.

    enhancement 
    opened by Eukon05 1
  • feature/advertisement_history

    feature/advertisement_history

    • created getUsersAdvertisements method in controller
    • created findAllByAuthor_Name method in repository
    • created getUsersAdvertisements method and it's implementation
    opened by MateuszBednarczyk 0
Owner
null
Search API with spelling correction using ngram-index algorithm: implementation using Java Spring-boot and MySQL ngram full text search index

Search API to handle Spelling-Corrections Based on N-gram index algorithm: using MySQL Ngram Full-Text Parser Sample Screen-Recording Screen.Recording

Hardik Singh Behl 5 Dec 4, 2021
Resources repository for Java programming students

Java development resources This repo includes most of the examples we develop during our lessons. Most of them are coded using Spanish ?? , as its the

Guillermo González 1 Jun 14, 2022
Application developed during the DDD training with 6 students.

Easyorder Application developed during the DDD training with 6 students. MongoDB To start MongoDB, use docker: docker run -p 27017:27017 --name mongo

RUARO Thibault 1 Jan 21, 2022
An android app that builds for students to find study partners.

Rinder The purpose of this project is to make a one-stop solution for finding the desired reading or research partner, sell their own products, and al

Md.Asraful Islam Asif 4 Dec 14, 2022
This repo contains all the materials for placement as well as Practical lab codes for all subjects and notes. For students graduating in 2023

UEMK_PLACEMENT_2023 This repo contains all the materials for placement as well as Practical lab codes for all subjects and notes. For students graduat

Shambashib Majumdar 8 Mar 5, 2022
FEM for Students is a program of modeling and structural analysis by Finite Element Method

FEM For Students FEM for Students is a software for modeling and structural analysis by Finite Element Method. This software was developed by me in my

André de Sousa 4 Jun 23, 2022
Always High is a College help app catered towards helping college students in managing their day-to-day hassle!

Always High Always High is a College help app cattered towards helping the college students in managing their day-to-day hassle! Problem : In the onli

Tirth Joshi 1 Mar 16, 2022
Repository for RTU MIREA students.

JavaFirstMirea Репозиторий для заданий и материалов по дисциплине «Программирование на языке Джава» (РТУ МИРЭА, ИИТ, 2-ой курс). Преподаватель: Ермако

Sergey Ermakov 14 Dec 5, 2022
Business Application Platform - no-code/low-code platform to build business applications

Orienteer What is Orienteer Orienteer is Business Application Platform: Easy creation of business applications Extendable to fit your needs Dynamic da

Orienteer 189 Dec 6, 2022
Realtime Data Processing and Search Engine Implementation.

Mutad The name Mutad is a reverse spelling of datum. Overview An implementation of a real-time data platform/search engine based on various technology

Shingo OKAWA 14 Aug 4, 2022
An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch.

Liferay External Searches An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch. Ge

Louis-Guillaume Durand 4 Oct 25, 2021
Spring Data Redis extensions for better search, documents models, and more

Object Mapping (and more) for Redis! Redis OM Spring extends Spring Data Redis to take full advantage of the power of Redis. Project Stage Snapshot Is

Redis 303 Dec 29, 2022
A simple quarkus app with hibernate as ORM, used to show the features of Hibernate Search

beer-manager-hibernate-search Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, ple

Sedona Solutions 3 Jan 6, 2022
A blog recipes API for you to share and search for food recipes

A blog recipes API for you to share and search for food recipes

java dojo 3 Apr 15, 2022
trace all binder-funcion calls on android-platform

BinderHackDemo trace all binder-funcion calls on android-platform 该demo展示了如何使用libbinderhack.so模块,trace-app自身进程binder调用情况 您可以通过该次提交,查看如何使用libbinderhack

null 4 Dec 25, 2021
open-source electronics platform

Arduino is an open-source physical computing platform based on a simple I/O board and a development environment that implements the Processing/Wiring

Arduino 13.3k Jan 4, 2023
Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes

Cloud Native and Low Code Platform to create FullStack web Admin applications in minutes ✨ Features & Technologies REST API generator Low Code CRUD &

Gemini Framework 171 Dec 26, 2022
ActiveJ is an alternative Java platform built from the ground up. ActiveJ redefines web, high load, and cloud programming in Java, featuring ultimate performance and scalability!

Introduction ActiveJ is a full-featured modern Java platform, created from the ground up as an alternative to Spring/Micronauts/Netty/Jetty. It is des

ActiveJ LLC 579 Jan 7, 2023