Skip to content

About

A backend resource written in rust meant for handling content for piecing together a CV

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

31 Commits

Folders and files

Repository files navigation

MING's Curriculum Manager

A restful-API backend application for managing content and data meant to create a CV.

I created this project for 2 main reasons:

  • I wanted something in my project backlog that showed rust expertise beyond advent of coded solutions. While it technically does the trick kind of but I believe having a project in my github portfolio that is actually usable and deployable says alot more than a couple of algorithmic solutions to programming puzzles.
  • I wanted to actually properly learn the backend-frontend-fullstack development by doing one myself.

As a bonus, the goal is also for this project to create one or two CVs I will actually use.

Building an running

Clone and build the project. The entire thing is meant to be executed as a cargo project. Beware though, right now, this thing is just a barebone axum app.

Running the tests

This project uses the googletest-rust framework for testing. To run the unit test, execute:

$ cargo test

For integration tests, you currently only have to run

$ cargo test --features integration

This will change though shortly once database integration is upstream

Project roadmap

For now, this project is built around supporting these out of the box top-level features:

  • User management with Oauth authentication
  • Postgres database
  • Each users have a profile with
    • Basic information such as a personal name
    • Contact information like email, phone number, and links.
  • Each user also have multiple curricular items, this include:
    • Education
    • Work Experience
    • Various skills (As of writing this, I haven't planned whether languages should be it's own type of skill)

This is the project progress. The items marked with [x] are done.

  • Basic user management
    • A user can be created with a id and username
    • The username and userid have to be unique
    • The userid to username mapping is injective
  • User controller
    • A user can login using Oauth
    • Unexisting OAuth user is created
    • Created user are stored in the postgres database
    • An authenticated user can read their own data
      • Reading another user's data is not possible
      • Absent or non-owned ids both answer 404, never 403, so that user ids cannot be enumerated
    • Out of scope for now: organisation-wide profile lookup, where any member can view any other member's profile (cf. Cinode)
  • User profile
    • A user needs one basic_profile
    • A user can have multiple profiles
    • Each profile can only have one user owner
    • Profile content:
      • Basic profile holds the users personal names including:
        • First Name,
        • Last Name,
        • Any number of middle names,
      • A basic "about" text for each user

About

A backend resource written in rust meant for handling content for piecing together a CV

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages