TimeWeaver is a dedicated platform designed to simplify the organization of group meetings among students. Our solution merges the individual timetables of students, highlighting common free slots, thus making it easy to pinpoint when everyone is available. This ensures students spend more time collaborating and less time scheduling conflicts.
Finding a common time slot for group projects, given varied class schedules, electives, and extracurricular activities, can be challenging and time-consuming. TimeWeaver is pivotal because:
- Efficiency: It automates the process of combining timetables, removing manual comparisons.
- Visual Aid: It provides a visual representation of 'gaps' in schedules where the least number of individuals have commitments.
- Save & Share: Users can save their consolidated timetable for future reference and share it as an image with all group members, keeping everyone aligned.
- In order to run the web server you will need Node.js installed (we recommend version 18.17.1)
- You will also need NPM to install dependencies (however this will be automatically installed with Node.js)
- To install dependencies run
npm install
from root directory
-
An .env file is to be created in the root directory containing Supabase connection strings. Credentials for our Supabase test instance are shown below. Alternatively, you can set up your own Supabase instance following the instructions here. The required strings can then be obtained by navigating to Project settings -> API in the dashboard for your Supabase project.
SUPABASE_URL=https://rfqlaybbittzjqzfskpg.supabase.co SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJmcWxheWJiaXR0empxemZza3BnIiwicm9sZSI6ImFub24iLCJpYXQiOjE2OTUzMzQxMDgsImV4cCI6MjAxMDkxMDEwOH0.R7P_x3HuHlwdvUc0O3lNsIWEPMYyUDKaBLBbjcpQaf4
-
Before you start the web server you have to build it, this can be done by running
npm run build
from the root directory -
Once the server has been built, start the web server by running
node index.js
from the root directory -
Then navigate to http://localhost:port in your web browser (using the port specified in the command line output - this will usually be 8080)
This project depends on Supabase, a database host and authentication provider utilised in the backend. A Supabase instance will need to be created to test and deploy the app.
npm install -g npx
. Installsnpx
which is needed to use the Supabase CLI.- Install Docker Desktop. A running Docker engine is required by the Supabase CLI.
-
Create a Supabase project
-
npx supabase login
. This will prompt you to sign in with your Supabase account. -
npx supabase link --project-ref <REFERENCE_ID>
. This will link your newly created Supabase project to the CLI. The reference ID can be obtained by navigating to Project Settings -> General. When prompted, enter the database password which you created earlier. -
Finally, with the terminal in the project root directory, execute
npx supabase db push
. This will migrate the schemas required by the app to your database instance.
-
Make sure the Docker enginer is running, and execute
npx supabase start
. This may take a while. You will eventually receive an output containing your local Supabase credentials.Started supabase local development setup. API URL: http://localhost:54321 GraphQL URL: http://localhost:54321/graphql/v1 DB URL: postgresql://postgres:postgres@localhost:54322/postgres Studio URL: http://localhost:54323 Inbucket URL: http://localhost:54324 anon key: <ANON_KEY> service_role key: <SERVICE_ROLE_KEY>
-
npx supabase db push
. Execute this with the terminal located in the project root directory. This will reset your local database and subsequently apply the migrations. -
In the
.env
file, setSUPABASE_URL=API_URL
andSUPABASE_ANON_KEY=anon key
from the output of Step 1.
- To run the project's testing framework, run
npm test
from the root folder.
TimeWeaver is licensed under the MIT License. This means you can use, modify, and distribute the software as per the terms stated in the license.
Currently, TimeWeaver is available in versions:
(Optional) If for any reason, you require changes to the database schema please visit the Contributing Guidelines
Contributions can make TimeWeaver even better. If you're interested in contributing to the project, please check out our Contributing Guidelines to understand how you can participate.
- Frontend: HTML,CSS
- Backend: Javascript
- Testing: Jest
Thank you for considering TimeWeaver.