/CarrerWatch

Career Watch le permite crear currículums impresionantes, organizar sus solicitudes de empleo en etapas y hacerse cargo de su agenda. Pero la cosa no termina ahí. Tienes la libertad de agregar tareas específicas a cada aplicación, como enviar correos electrónicos a RR.HH. o estudiar temas clave para entrevistas

Primary LanguageJava

GPLv3 License Version GitHub pull requests PR's Welcome GitHub contributors



An app for job seekers who want to nail it. Get your resumes, job applications, and schedule organized with Carreer Watch.


Introducing Career Watch - your ultimate job search companion. With this game-changing project, you can take your job hunt to the next level and ensure you're on the right track.


Career Watch empowers you to create impressive resumes, organize your job applications into stages, and take charge of your schedule. But it doesn't stop there. You have the freedom to add specific tasks to each application, such as sending emails to HR or studying key topics for interviews. Stay on top of your game with handy reminders that keep you focused and motivated.

But here's the real game-changer: Career Watch lets you measure your progress with powerful metrics. For instance, imagine you've submitted 50 applications, received interview calls from 5 companies, and made it to technical tests with 2 of them. These metrics provide valuable insights, helping you reassess and fine-tune your job search strategy based on real results.

Say goodbye to guesswork and hello to a data-driven approach to your job search. Career Watch revolutionizes the way you navigate the job market, helping you make informed decisions that bring you closer to your dream career. Get ready to unleash your potential and land that perfect job with Career Watch.




You can check out our webpage here:



✔ BackEnd

👉🏻 Task List ✅

  • Development of REST API with Java and Spring-Boot.
  • Create Postgre Database on AWS RDS and configure in a Proxy RDS.
  • Deploy API in API Gateway, with lambda proxy integration.
  • Build specific lambda for register and autentication.
  • Authorization procces through API gateway and lambda custom authorizer.
  • Users validation with JWT built and signed in the application, or Oauth2.0 from Google.
  • Creating filters with regular expressions and JPA/Hibernate rules.
  • API documentation on Swagger3.
  • Endpoints and services fully tested.
  • Containerization in docker to run locally.

👉🏻 Code Standards 📜

  • Keep in mind rules from Google Java Style Guide.
  • Code must be in English.
  • The controllers should finish with suffix "Controller". Example: UserController.
  • The services should finish with suffix "Service". Example: UserService.
  • The repositories should finish with suffix "Repository". Example: UserRepository.
  • The implementations of interfaces should finish with suffix "Impl". Example: UserServiceImpl.
  • The DTOs should finish with suffix "Dto". Example: UserDto, UserRequestDto.
  • Usage of DTOs is a must. Can have DTOs for request and response.
  • Package names are in singular.
  • The names of attributes/fields from Java classes must be written using camel case. Example: firstName.
  • The name of columns in the entities must be written using underscore and uppercase. Example: FIRST_NAME. The name of the tables is always in plural, but the entity name should be in singular.
  • Exceptions should be handled by an implementation of ControllerAdvice.
  • Messages to user can't be hardcoded them should be handled. Some refs here and here.
  • If you add a new endpoint, make sure to set the role access for it in the WebSecurity class.

👉🏻 Documentation 📜

  • You can read API docs here.

👉🏻 Serverless Architecture ☁️

  • The application is modularized into three lambda functions, by means of cloud formation using SAM.
  • The first lambda executes the registration and authentication of new users and returns a JWT.
  • The second lambda is in charge of authorization , which verifies the existence of the token in the "Authorization" header and its validity, which can be generated by the registration lambda or come from a third party provider such as Google through Oauth2.0, and generates an IAM policy to allow the execution of the third lambda.
  • The third lambda works under proxy protocol, and is where the application endpoints that call the business logic are located, which in turn communicates with a Postgre database in RDS through a RDS proxy.
  • The three lambdas generate the logs in CloudWatch and their environment variables are managed by the AWS secrets manager.

👉🏻 Built with 🛠️

IntelliJ IDEA Java Spring Postgres Hibernate JWT Swagger Docker AWS

👉🏻 Developers 👨🏻‍💻

Emiliano Escobedo Brayan Rodallega



✔ FrontEnd

👉🏻 Task List ✅

  • Development of front-end reactive React app.
  • Implementation of UX/UI designs.
  • Implementation of security architecture with JWT interceptors.
  • Connection with REST API.
  • Deployed in Firebase hosting.

👉🏻 Code Standards 📜

  • Name React components using PascalCase. For example: UserCard, LoginForm.
  • Use meaningful and descriptive names for variables, functions, and components.
  • Separate concerns and maintain a modular structure for your code. Each component should have its own file.
  • Organize components into logical folders based on their functionality or feature.
  • Use camelCase for variable and function names. For example: firstName, getUserData().
  • Utilize reusable components whenever possible to avoid code duplication.
  • Follow the recommended file structure for React projects, separating components, styles, and other resources into their respective directories.
  • Utilize React hooks and functional components for new development whenever possible.
  • Ensure responsive design and cross-browser compatibility for a consistent user experience.
  • Optimize performance by following best practices such as lazy loading, code splitting, and efficient rendering techniques.
  • Prioritize code readability and maintain a consistent coding style throughout the project.
  • Handle errors and exceptions gracefully, providing helpful error messages to users when necessary.
  • Use localization techniques for handling strings and messages that need to be translated or externalized.

👉🏻 Built with 🛠️

Visual Studio Code JavaScript Vite React TailwindCSS Firebase

👉🏻 Developers 👨🏻‍💻

Nicolas Roberto Facundo Ramirez Agustin Soleti

✔ Testing

👉🏻 Task List ✅

  • Perform design and integration testing
  • Testing REST API endpoints
  • Testing front end components and back end integration

👉🏻 Documentation 📜

  • You can read testing docs here.

👉🏻 Tested with 🛠️

Postman Selenium

👉🏻 Testers 👨🏻‍💻

Dolores Alemán

✔ UX/UI Design

👉🏻 Task List ✅

  • Design brand identity and logos
  • Design low quality prototypes and mockups
  • Define colors, fonts and styles
  • Move to medium quality and develop components
  • Copy-writing

👉🏻 Built with 🛠️

Figma Adobe Illustrator Adobe Photoshop Canva

👉🏻 Designers 👨🏻‍💻

Gerardo Vargas

✔ WorkFlow

👉🏻 Commits Format 📜

  • Always create the branch from develop
  • The branch name format is: feature/{jiraTicket#}.
  • The pull request title format is: {jiraTicket#}: {jiraTitle}.
  • The commits format is: {jiraTicket#}: {commitDescription}, Small commits are a nice to have.
  • The pull request has to contain only the changes related to the scope defined in the ticket.
  • Pull request should always be from your current branch to develop.

👉🏻 Branches Format 📜

In the current repository you will see three diferent branches

  • main -> this branch is only for productive versions, it has official release history.
  • develop -> this branch serves as an integration branch for features. All features must start from this branch and after it's finished it gets merged back into develop. For understanding more about git and how to work with different branches, I recommend to read about Gitflow workflow. Here you have a little explanation that can serve as introduction.

👉🏻 Scrum 🤝

  • Sprints last one week.
  • Two mandatory meetings with team leader per sprint.
  • The maximum duration of the daily meeting is 15 min.
  • Tasks without an epic are not allowed.
  • Epics have to be backed by user stories.
  • Tasks have to be assigned according to estimate.

👉🏻 Used software 🛠️

Jira Git GitHub

👉🏻 Team Leader 👨🏻‍💻

Billy Campagnoli