GitHub - vitaoTM/Fullstack-Developer: dev test

This is a developper test by umanni. A responsive user management system. Main features:

  • Admin dashboard: a stats from all users grouped by role
  • User management (CRUD): admins can create, read, update and delete any user
  • Profile management: Regular users can CRUD their own profile
  • CSV import: Admins can bulk import new users via CSV files.

Versions used in this project

System Version Command Version
ruby ruby -v 3.4.5
rails rails -v 8.0.4
redis/valkey redis-cli -v valkey-cli 8.1.4
postgreSQL psql -V 18
tailwind npm view tailwindcss version 4.1.16
node node -v v25.1.0

Clone or download this repo

git clone git@github.com:vitaoTM/Fullstack-Developer.git
cd Fullstack-Developer

Get Started with Docker

  1. Build and Run the app
docker-compose build 
docker-compose up -d 
  1. Set up database
docker-compose exec web bin/rails db:setup
  1. Create admin User

You'll need to create the first user via rails console

# Start the console:

docker-compose exec web bin/rails console

# inside the console, run:

u = User.create(full_name: "Adim User", email: "admin@admim.com", password: "password123", password_confirmation: "password123")
u.admin!
u.save

# To exit rails console type:

exit
  1. Access the app

The application should be runnig:

  • Check: http://localhost:3000
  • Log in with the credentials you just created.
  1. Stopping the application

To stop all running Docker containers:

Get Started Locally

To run locally please check:

  • Ruby version file: .ruby-version
  • Rails: see Gemfile
  • PostgreSQL: Must be installed and runnig.
  • Node & Yarn: Make sure its all installed.
  1. Setup Database and install gems and JS packages
bundle install 
yarn install
bin/rails db:create db:migrate

  1. Create Admin User
  • Create admin user, must be done through rails console:

  • Do not forget to change your credentials:

rails console

# You will enter rails console:
# run:

# This will create a admin user if you do not read this and only copy and paste to your terminal (you can delete this line)

adm = User.create(full_name: "Admin", email: "admin@admin.com", password: "123456", password_confirmation: "123456")
adm.admin!

u = User.create(full_name: "ADD YOU NAME HERE", email: "ADD YOUR EMAIL HERE", password: "SET A PASSWORD", password_confirmation: "CONFIRM YOUR PASSWORD")

u.admin!

exit

  1. Run The App
  • Access the app at http://localhost:3000

  • To exit server just press Ctrl-C

  1. Run Tests (Local):