Skip to content

arthurmousinho/selffy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selffy

preview

About

Selffy is a comprehensive platform designed to help you manage all your personal and professional freelance projects seamlessly in one place. With Selffy, you can streamline your workflow, stay organized, and efficiently track your progress, ensuring you never miss a deadline.

🚧 Selffy is under development 🚧

Tech Stack

  • React
  • VITE
  • Typescript
  • Shadcn/UI
  • TailwindCSS
  • Nest.Js
  • Prisma ORM
  • PostgreSQL
  • Docker

Dependencies

How to use?

Clone the repository: https://github.com/arthurmousinho/selffy.git

API

  1. Go to api folder: cd api
  2. Install dependencies: npm install
  3. Run docker container: docker-compose up -d
  4. Create a .env file in the root of the project and add the following variables:
DATABASE_URL="postgresql://docker:docker@localhost:5432/selffy-db"
JWT_SECRET="secret"
  1. Add the migrations: npx prisma migrate dev
  2. Run the API: npm run dev
  • ✅ The API will be running on http://localhost:3000
  • 📖 The Swagger documentation will be available at http://localhost:3000/docs/swagger
  • 💡 By initial (your database will be empty), the api will run the seeders scripts, creating mock users, projects, tasks, costs and the roles.You can use the following admin credentials to login in development mode: email admin@selffy.com and password admin123

Web

  1. Go to web folder: cd web
  2. Install dependencies: npm install
  3. Create a .env.local file in the root of the project and add the following variables:
VITE_API_BASE_URL="http://localhost:3000"
  1. Run the project: npm run dev

Features

Users

  • It should be able to authenticate a user using e-mail & password;
  • It should be able to create a user;
  • It should be able to update a user;
  • It should be able to delete a user;
  • It should be able to list all users;
  • It should be able to get a user by id;
  • It should be able to count the number of users;
  • It should be able to search users by name;
  • It should be able to get the users insights;
  • It should be able to get the users growth (monthly, weekly, daily);

Projects

  • It should be able to create a project;
  • It should be able to update a project;
  • It should be able to delete a project;
  • It should be able to list all projects;
  • It should be able to get a project by id;
  • It should be able to count the number of projects;
  • It should be able to count the number of projects by status;
  • It should be able to get the projects growth (monthly, weekly, daily);
  • It should be able to get the projects total revenue;
  • It should be able to search projects by title;
  • It should be able to get the projects insights;

Tasks

  • It should be able to create a task;
  • It should be able to update a task;
  • It should be able to delete a task;
  • It should be able to list all tasks;
  • It should be able to get a task by id;
  • It should be able to count the number of tasks;
  • It should be able to count the number of tasks by status;
  • It should be able to count the number of tasks by priority;
  • It should be able to get the tasks growth (monthly, weekly, daily);
  • It should be able to get the tasks insights;
  • It should be able to search tasks by title;

Costs

  • It should be able to create a cost;
  • It should be able to update a cost;
  • It should be able to delete a cost;
  • It should be able to list all costs;
  • It should be able to get a cost by id;
  • It should be able to count the number of costs;
  • It should be able to get the costs growth (monthly, weekly, daily);
  • It should be able to get the costs insights;
  • It should be able to search costs by title;
  • It should be able to get the costs total value;

RBAC (Role Based Access Control)

Roles

  • Admin
  • Free
  • Free

Permissions table

Admin Free Premium
Access Admin Dashboard
Access User Dashboard
Create User ⚠️ ⚠️
Update User ⚠️ ⚠️
Delete User ⚠️ ⚠️
List Users
Search Users
Access Project Insights
Create Project ⚠️
Update Project ⚠️ ⚠️
Delete Project ⚠️ ⚠️
Search Projects
Access Task Insights ⚠️ ⚠️
Create Task ⚠️ ⚠️
Update Task ⚠️ ⚠️
Delete Task ⚠️ ⚠️
View Costs Insights ⚠️ ⚠️
Add Costs ⚠️ ⚠️
Update Costs ⚠️ ⚠️
Delete Costs ⚠️ ⚠️

✅ = allowed
❌ = not allowed
⚠️ = allowed with limitations or specific conditions

Conditions

  • Free: Can only create 5 projects.
  • Premium: Can create unlimited projects.
  • Free Premium: Can only do actions related to themselves. Ex: Can update their user profile, but can't update other users profiles.

About

A self work management web app

Resources

Stars

Watchers

Forks

Languages