LinkeTinder is a unique platform designed to blend a professional networking environment with the anonymity and match-based logic of popular dating applications. The project aims to facilitate professional connections between candidates and companies in a discreet and effective way, allowing users to explore career opportunities and find talent without disclosing personal details upfront.
This project is developed with a REST API approach using a custom backend architecture without frameworks, facilitating future transitions to framework-based development. The backend is implemented in Groovy with Gradle as the build tool, and Apache Tomcat is utilized as the server. PostgreSQL is used for database management, ensuring robust and scalable data storage.
- Anonymous professional matching for both candidates and companies.
- Structured with MVCS architecture, including DTOs (Data Transfer Objects) and DAOs (Data Access Objects) to manage data entities such as candidates, companies, jobs, and skills.
- REST API designed with servlets in Java, ensuring modular and scalable endpoints.
- Constantly evolving architecture with a roadmap for future migration to frameworks as the knowledge base expands.
- Frontend: TypeScript, HTML, and CSS
- Backend: Groovy, utilizing Apache Tomcat for server management and Gradle for dependency management
- Database: PostgreSQL
- Architecture: MVCS with DTOs and DAOs for each main data entity (candidates, companies, jobs, and skills)
The following dependencies are required for the backend:
- Groovy (latest stable version)
- Gradle (for project build and dependency management)
- Apache Tomcat (server for running servlets)
- PostgreSQL JDBC Driver (for database connectivity)
-
Download and Install Groovy:
- Visit the Groovy official website and download the latest stable version.
- Follow the installation instructions for your operating system.
-
Verify Installation:
- Open a terminal and run
groovy -vto confirm the installation.
- Open a terminal and run
-
Download and Install Gradle:
- Visit the Gradle official website and download the latest stable version.
- Follow the installation steps, which may include adding Gradle to your system’s PATH.
-
Verify Installation:
- Run
gradle -vin the terminal to confirm that Gradle is installed correctly.
- Run
-
Download and Install Apache Tomcat:
- Visit Apache Tomcat’s official website and download the latest stable version.
- Follow the installation instructions for your operating system.
-
Configure Tomcat in IntelliJ:
- Open your project in IntelliJ.
- Go to
File>Project Structure>Modules>Dependenciesand add the necessary libraries for Servlets and JDBC. - Go to
Run>Edit Configurations, add a new Tomcat Server configuration, and select your Tomcat installation. - Deploy the project by running the server from IntelliJ.
-
Configure Gradle to Generate a .war File:
- Ensure that your
build.gradlefile is set up to create a.warfile by adding thewarplugin if it’s not already included:apply plugin: 'war'
- Ensure that your
-
Build the Project:
- Run the following command in the terminal to generate the
.warfile:gradle clean build
- This command will create a
build/libsdirectory containing the generated.warfile.
- Run the following command in the terminal to generate the
-
Deploy to Tomcat:
- Copy the generated
.warfile frombuild/libsinto thewebappsfolder of your Tomcat installation.
- Copy the generated
-
Start Tomcat:
- Start the Apache Tomcat server. Tomcat will automatically deploy the
.warfile, making the application accessible athttp://localhost:<port>/<application-name>.
- Start the Apache Tomcat server. Tomcat will automatically deploy the
| Endpoint | Method | Description |
|---|---|---|
/api/candidates |
GET | Retrieves a list of candidates. |
/api/candidates/{id} |
GET | Retrieves candidate by ID. |
/api/candidates |
POST | Creates a new candidate profile. |
/api/companies |
GET | Retrieves a list of companies. |
/api/companies/{id} |
GET | Retrieves company by ID. |
/api/companies |
POST | Creates a new company profile. |
/api/jobs |
GET | Retrieves job listings. |
/api/jobs/{id} |
GET | Retrieves job details by ID. |
/api/jobs |
POST | Creates a new job posting. |
/api/skills |
GET | Retrieves a list of skills. |
/api/skills/{id} |
GET | Retrieves skill by ID. |
/api/skills |
POST | Adds a new skill to the database. |
LinkeTinder is a project under active development, designed to evolve as new knowledge and techniques are acquired. The goal is to transform this foundational application into a robust system that leverages frameworks and modern software development practices. The current structure, based on MVCS with dedicated DTOs and DAOs, facilitates seamless transitions and modular improvements over time.