Rootspace is an open-source, lightweight work management software equipped with essential features, perfect for projects requiring online collaboration and task management.
It consists of features such as file-sharing, task boards, document editing, and other powerful features. Additionally, we have used this platform as a means of encouraging knowledge-sharing and experimentation with emerging technologies among Clearview.team members.
One of Rootspace's strongest attributes is its user-friendly design, as well as its ease of deployment and maintenance. The interface is highly intuitive and user-friendly, making it accessible even to the least-experienced team members. It also has the capability to expand its functionality, with new features easily.
Rootspace provides a centralized repository for all project information, eliminating the need to search for scattered emails containing URLs, files, docs, and file links, allowing everyone to quickly jump into the project without wasting time searching for information.
Playing with task lists, Collaborating, Linking external sources, uploading files etc.
.env
After you clone the repo, make a quick copy of .env files.
# navigate to the project's root folder and:
cp .env.example .env && cp api/.env.example api/.env && cp web/.env.example web/.env
Seed and spin the containers using docker compose
. This is done only once, on the first run to populate the database.
# navigate to the project's root folder and:
docker compose -f docker-compose.yml -f docker-compose-seed.yml up api
You will see a message like the one below.
...
root_api | 👍 Finished Seeding
root_api | Done in 5.39s.
root_api exited with code 0
The API container should populate the database and exit.
# navigate to the project's root folder and:
docker compose up
It will take some time to pull all the images, but eventually, you will see the message:
🚀 Server ready at: http://localhost:3001
# Check your ports. By default the app will try to take port 3000
and navigate your browser to:
http://localhost:3000
username: rootspace@example.com
password: rootspaceIf required, edit .env files in
/
,web/
,api/
folders.
If you want to use storage, keep in mind that you would need an S3 bucket and an IAM to be set up. Also, if you want to use Google login, you will need to create a 'Google API project' and obtain 'OAuth 2.0 credentials'. The same thing goes for Sendgrid. Set all the keys in api/.env
accordingly.
Key | Description | Findout more |
---|---|---|
SENDGRID_API_KEY | Sendgrid email service | Sendgrid Account Settings |
S3_ACCESS_KEY | Amazon S3 Access Key | AWS Account and Access Keys |
S3_SECRET_KEY | Amazon S3 Secret Key | AWS Account and Access Keys |
GOOGLE_CLIENT_ID | Google Client ID | Integrating Google Sign-In into your web app |
GOOGLE_CLIENT_SECRET | Google Client Secret | Integrating Google Sign-In into your web app |
Other values filled at your discretion, please check the api/.env.example
Set logging: true
in api/db/db.ts
to see in console all SQL queries sent to PostgreSQL server
You can also run docker-compose up
or docker-compose up -d
from tests
directory to bring up ephemeral testing postgres database.
If you need Mailhog, Dozzle or Arena containers, you can also spin those in addition to previous
docker compose -f docker-compose.yml -f docker-compose-dev.yml up
Access Arena at (use user/pass from api/.env file) at http://localhost:3001/arena
Access Dozzle to watch container logs in realtime at http://localhost:9999
Access sent emails with Mailhog at http://localhost:8025
To test the Docker images locally use the following command
docker buildx bake local --load
docker compose -f docker-compose.yml -f docker-compose-local.yml up --force-recreate
Build and push to Dockerhub.
docker buildx bake --push
Build for local use.
docker buildx bake local --load
You can use Insomnia and a file assets/insomnia.json
to check on API. The API container spins at port 3001
by default.
Team: Adi Utama, Aditya Purwa, Adnan Puzic, Aid Arslanagic, Arfan Fudyartanto, Jasmin Ihtijarevic, Januar Fonti, Mirza Eka, Mujo Kodro, Nedim Hadzimahmutovic, Taufan Fadhilah Iskandar, Vedran Alajbegovic