Code Monkey home page Code Monkey logo

boxyhq / saas-starter-kit Goto Github PK

View Code? Open in Web Editor NEW
2.7K 20.0 536.0 6.88 MB

πŸ”₯ Enterprise SaaS Starter Kit - Kickstart your enterprise app development with the Next.js SaaS boilerplate πŸš€

Home Page: https://boxyhq.com/blog/enterprise-ready-saas-starter-kit

License: Apache License 2.0

JavaScript 2.62% TypeScript 97.13% CSS 0.24% Procfile 0.01%
nextjs saas-boilerplate saas-kit saas boilerplate js-boilerplate starter-template react starter-kit tailwindcss

saas-starter-kit's People

Contributors

aniruddhagawali avatar belkhoujaons avatar cristuker avatar deepakprabhakara avatar dependabot[bot] avatar devkiran avatar dhoni77 avatar emmacode avatar g3root avatar gitstart-boxyhq avatar jatingodnani avatar kiran-alex avatar kkumar-gcc avatar kunal144 avatar musyonchez avatar nathantarbert avatar niwsa avatar rohitmondal03 avatar saptarshee94 avatar shartrooper avatar shiva-sai-ssb avatar shreyas0924 avatar shubhamsingh-s34 avatar snyk-bot avatar steven-tey avatar ukrocks007 avatar vivekboii avatar vrmartins avatar yacineahmaich avatar young-einstein10 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saas-starter-kit's Issues

Update a member's role

  • Add an Edit button against a member in the "Team Members" section.
  • Display a modal popup to choose a new role from Admin, Owner, or Member.
  • Only Admin or Owner can edit a member's role.

Authenticated user shouldn't be able to access landing page

An user after login can still redirect to the landing page and, hence, to the sign in and sign up pages. IMO, authenticated users ought to be redirected towards the dashboard if they attempt to access through the root URL '/'.

With React Router, this can be achieved by dynamically mounting either "private" route components if there's an active session (token authentication or some other means), or "public" route components if there is not. On Next Im not pretty sure yet how's implemented, but I can learn and perform this task if you people agreed in limiting route access by ongoing session.

Update password

As a user I want to update my current password.

What needs to be done
Add an "Update Password" section under the account page. The user should be able to enter their current and new password. Then, update the database with the new password for that user.

Create a 'Deploy to Heroku' Button

The β€˜Deploy to Heroku’ button enables users to deploy apps to Heroku without leaving the web browser, and with little or no configuration. The button is ideal for customers with a quick and easy way to deploy and configure a Heroku app.

Add profile picture upload field on account page

Design and implement the UI components necessary to add a profile picture upload field on the Account Page.

  • This task focuses solely on the user interface (UI) and does not involve backend functionality.
  • Display the avatar image on the Account Page.
  • Clicking on the avatar image should open image upload dialog.

Screenshot 2022-10-17 at 4 23 25 PM

psycopg not found on local install

I'm trying a fresh install locally and after I run ./setup.sh http://localhost then docker compose up I get the following error when it tried to load the apiserver:

plane-createbuckets-1 exited with code 0
plane-db               | 2023-07-17 15:59:35.674 UTC [23] LOG:  database system was not properly shut down; automatic recovery in progress
plane-db               | 2023-07-17 15:59:35.680 UTC [23] LOG:  redo starts at 0/19319F0
plane-db               | 2023-07-17 15:59:35.680 UTC [23] LOG:  invalid record length at 0/1931A28: wanted 24, got 0
plane-db               | 2023-07-17 15:59:35.680 UTC [23] LOG:  redo done at 0/19319F0 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s
plane-db               | 2023-07-17 15:59:35.706 UTC [21] LOG:  checkpoint starting: end-of-recovery immediate wait
plane-db               | 2023-07-17 15:59:35.815 UTC [21] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.057 s, sync=0.013 s, total=0.121 s; sync files=2, longest=0.011 s, average=0.007 s; distance=0 kB, estimate=0 kB
plane-db               | 2023-07-17 15:59:35.841 UTC [1] LOG:  database system is ready to accept connections
planefrontend          | + /usr/local/bin/replace-env-vars.sh http://localhost:8000 http://localhost
planefrontend          | Replacing all statically built instances of http://localhost:8000 with this string http://localhost .
planebgworker          | Traceback (most recent call last):
planebackend           | Traceback (most recent call last):
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/postgresql/base.py", line 25, in <module>
planebackend           |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/postgresql/base.py", line 25, in <module>
planebackend           |     import psycopg as Database
planebackend           |   File "/usr/local/lib/python3.11/site-packages/psycopg/__init__.py", line 9, in <module>
planebackend           |     from . import pq  # noqa: F401 import early to stabilize side effects
planebgworker          |     import psycopg as Database
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/psycopg/__init__.py", line 9, in <module>
planebackend           |     ^^^^^^^^^^^^^^^^
planebackend           |   File "/usr/local/lib/python3.11/site-packages/psycopg/pq/__init__.py", line 114, in <module>
planebgworker          |     from . import pq  # noqa: F401 import early to stabilize side effects
planebgworker          |     ^^^^^^^^^^^^^^^^
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/psycopg/pq/__init__.py", line 114, in <module>
planebackend           |     import_from_libpq()
planebackend           |   File "/usr/local/lib/python3.11/site-packages/psycopg/pq/__init__.py", line 106, in import_from_libpq
planebgworker          |     import_from_libpq()
planebackend           |     raise ImportError(
planebackend           | ImportError: no pq wrapper available.
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/psycopg/pq/__init__.py", line 106, in import_from_libpq
planebgworker          |     raise ImportError(
planebgworker          | ImportError: no pq wrapper available.
planebgworker          | Attempts made:
planebgworker          | - couldn't import psycopg 'c' implementation: No module named 'psycopg_c'
planebgworker          | - couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
planebgworker          | - couldn't import psycopg 'python' implementation: libpq library not found
planebgworker          | 
planebgworker          | During handling of the above exception, another exception occurred:
planebgworker          | 
planebgworker          | Traceback (most recent call last):
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/postgresql/base.py", line 27, in <module>
planebgworker          |     import psycopg2 as Database
planebgworker          | ModuleNotFoundError: No module named 'psycopg2'
planebgworker          | 
planebgworker          | During handling of the above exception, another exception occurred:
planebgworker          | 
planebgworker          | Traceback (most recent call last):
planebgworker          |   File "/code/manage.py", line 17, in <module>
planebgworker          |     execute_from_command_line(sys.argv)
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
planebackend           | Attempts made:
planebackend           | - couldn't import psycopg 'c' implementation: No module named 'psycopg_c'
planebackend           | - couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
planebackend           | - couldn't import psycopg 'python' implementation: libpq library not found
planebackend           | 
planebackend           | During handling of the above exception, another exception occurred:
planebackend           | 
planebackend           | Traceback (most recent call last):
planebackend           |   File "/usr/local/lib/python3.11/site-packages/django/db/backends/postgresql/base.py", line 27, in <module>
planebackend           |     import psycopg2 as Database
planebackend           | ModuleNotFoundError: No module named 'psycopg2'
planebackend           | 
planebackend           | During handling of the above exception, another exception occurred:
planebackend           | 
planebackend           | Traceback (most recent call last):
planebackend           |   File "/code/manage.py", line 17, in <module>
planebackend           |     execute_from_command_line(sys.argv)
planebackend           |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
planebgworker          |     utility.execute()
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 416, in execute
planebackend           |     utility.execute()
planebackend           |   File "/usr/local/lib/python3.11/site-packages/django/core/management/__init__.py", line 416, in execute
planebackend           |     django.setup()
planebackend           |   File "/usr/local/lib/python3.11/site-packages/django/__init__.py", line 24, in setup
planebgworker          |     django.setup()
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/__init__.py", line 24, in setup
planebgworker          |     apps.populate(settings.INSTALLED_APPS)
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/apps/registry.py", line 116, in populate
planebgworker          |     app_config.import_models()
planebgworker          |   File "/usr/local/lib/python3.11/site-packages/django/apps/config.py", line 269, in import_models
planebgworker          |     self.models_module = import_module(models_module_name)

Internationalization (i18n): Add remaining translation strings

  • Add the remaining translation string to locales/en
  • Use the translation keys in the components and pages.

Example

{
"hi": "Hi",
"logged-in-using": "You have logged in using"
}

const { t } = useTranslation("common");

{`${t("hi")}, ${session?.user.name} ${t("logged-in-using")} ${

Send Events

Trigger actions when certain events happen with the Webhook to customize business logic.

Send events for the following actions

  • member.created
  • member.removed
  • invitation.created
  • invitation.removed

Follow the best practice for the payload structure and sending events.

Note: we're using Svix for the webhook integration.

Add Dark mode

The user should be able to choose their preference from the settings.

Here is the basic idea.

dark-mode

This UI is not implemented yet.

Support login via OIDC

  • We have the SAML login working, but we need to support OIDC as well.
  • Ability to add a new OIDC connection (Either OIDC or SAML).
  • Please check what additional fields we need to add form.

Set up issues

Just trying out the project locally, following along with the README.md instructions.

I get as far as step 6 to set up the db schema: npx prisma db push

I'm seeing the following error:

Error: P1000: Authentication failed against database server at localhost, the provided database credentials for adminare not valid. Please make sure to provide valid database credentials for the database server atlocalhost.

I'm using a Docker container for the db and that all seems OK so not sure why I'm getting this error. Any ideas?

See the screenshot for details of my .env file.

image

image

Include a theme toggler in the navbar

Having to log in and navigate to the user settings page is a long journey to change the theme. There should be a theme toggler in the Navbar (Public and Private) to make this accessible to everyone.

Example
Screenshot 2023-09-06 at 08 26 34

I'd love to work on this.

Google - Github Callbacks

I was just setting up Github and Google SSO and I need to know what the format of the callback url is for Saas starter kit. Both Github and Google require it. Cheers, Dave

Add a "Deploy to DigitalOcean" Button

The Deploy to DigitalOcean Button allows users to launch an application onto App Platform. It can be embedded in the README file, allowing users who are browsing your repository to deploy project in one click.

Delete SAML connection for a team

  • Add an option to delete the existing SAML connection.
  • Only ADMIN or OWNER can delete the connection.
  • Call Jackson delete method to delete the connection.

Social login

As a user I should be able to login with social login such as Github, Google.

NextAuth.js support social login.

  • Add social login button to the login and signup page.
  • Update the README with the appropriate instructions.

Email notification after signup

It is a good idea to send a welcome email notification to the new users after they signup on to the app. Keep the email template simple for now.

Sending email functionality is already there in the code; see how we send an invitation email to the users.

Missing Dependencies

Default clone (main branch)

yarn install
yarn dev

Result:

Error: Cannot find module 'autoprefixer'

Okay, lets add the dependency:

yarn add -D autoprefixer
yarn dev

Next Error::

Error: Cannot find module 'daisyui'

Okay, lets fix this. I believe this is a direct dependency, so add it:

yarn add daisyui
yarn dev

Working at last

i18n internationalization

Internationalization (i18n) is the process of preparing the app so that it can support multiple languages.

  • Support i18n using best practices for React and Next.js.
  • Figure out a good solution for supporting translations of string used in the app.

Audit logs

Audit Logs allow you to track and analyze each member activity.

Reset password

As a user I want to reset my password when I forgot it.

What needs to be done
Build a new "forgot password" view where a user can enter his email address and request a new password. An email should send to the user with the password reset link.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.