Coder Social home page Coder Social logo

plan-together's Introduction

Plan Together

This is a Next.js project bootstrapped with create-next-app.

Run the project

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev

Run the local db

The local database is set up with docker for interoperability's sake.

To run it locally, do these commands:

$ docker-compose up -d 
#runs docker, might pull an image before

$ npx prisma migrate dev 
#to push the schema into the database

$ npx prisma db seed 
#to populate database with fake data

$ npx prisma studio
#to open a database viewer

$ docker stop
#to stop container

Run password reinitialization

To run the password reinitialization, you need create .env.local file in the root of the project and add the following variables, use https://ethereal.email/ and create a user to use the service and add NODE_ENV=development to the .env file:

JWT_SECRET=your-secret ETHEREAL_USER=email-user ETHEREAL_PASS=password-user

plan-together's People

Contributors

cabalexis avatar dorianloret avatar lugdu84 avatar melcd238 avatar palingenae avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

palingenae

plan-together's Issues

Database : Schéma

%%{init: {
  "theme": "default",
  "fontFamily": "Cascadia Mono"}
}%%

erDiagram
    USER }|--o{ EVENT: Creates
    USER }o--o| INVITATION: Sends
    EVENT |o--o{ INVITATION: Exists
    NEXTAUTH_ACCOUNT |o--o| USER: Authenticate
    NEXTAUTH_SESSION |o--o| USER: Logs
    NEXTAUTH_VERIFICATIONTOKEN |o--o| USER: Checks
    EVENT {
        int id
        varchar title
        varchar location
        enum type
        DateTime date
        varchar link
        varchar picture
        text description
        int creator_id(user_id_PK)
        json date_suggestions
        int status
        int min_attendees
        DateTime latest_answer
    }
    USER {
        int id
        varchar firstname
        varchar lastname
        varchar mail_address
        varchar password
        varchar gender
        varchar pronouns
        varchar profile_picture
        string accounts
        string session
        DateTime sign_up_date
        
    }
    INVITATION {
        varchar uuid
        varchar token
        int event_id
        int user_id
        enum status
    }
    NEXTAUTH_ACCOUNT {
        varchar id
        varchar user_id
        varchar type
        varchar provider
        varchar provider_account_id
        varchar refresh_token
        varchar access_token
        int expires_at
        varchar token_type
        varchar scope
        varchar id_token
        varchar session_date
    }
    NEXTAUTH_SESSION {
        varchar id
        varchar session_token
        varchar user_id
        DateTime expires
    }
    NEXTAUTH_VERIFICATIONTOKEN {
        varchar identifier
        varchar token
        DateTime expires
    }

Événements : Suppression d'un événement

User Story

As an authenticated User who is event organizer,
I want to be able to cancel an event

Technical Tasks

  • UI Component: Design and implement a user interface component, such as a "Cancel Event" button, that will be visible only to event organizers on the event detail page.
  • Backend for Event Cancellation: Develop backend functionality to handle the cancellation of an event. This will include updating the event's status in the database to "Cancelled" and notifying guests.
  • Database Schema Update: Add or modify a field in the database schema to store the status of the event (Active, Cancelled, Completed, etc.).
  • Authentication and Authorization: Implement checks to ensure that only the authenticated users who are organizers of the specific event can cancel it.
  • Notification Mechanism: Develop a mechanism to notify guests that the event has been cancelled.
  • Error Handling: Implement error handling to gracefully manage any issues that may arise during the cancellation process, such as database errors.

Acceptance Criteria:

  • Access to Cancel Event: Only authenticated users who are organizers should have access to a "Cancel Event" option for events they've organized.
  • Ease of Use: The process of cancelling the event should be straightforward and should require minimal steps.
  • Authentication and Authorization: The system should verify that the user attempting to cancel the event is authenticated and is the organizer of the specific event.
  • Event Status: Upon successful cancellation, the status of the event should be updated to "Cancelled" in the database.
  • Notification: All guests invited to the event should be notified of the cancellation.
  • Data Integrity: No other information related to the event should be modified other than its status.
  • Error Handling and Feedback: Clear and informative error messages should be displayed to the user if the cancellation process fails for any reason.

Plan Together Identity

Logo

  • Create logo:
    • Large format
    • Smaller format
    • Icon for Favicon and mobile display

Colors

  • Main palette
  • Design tokens
    • Neutral state
    • Positive
    • Destructive
    • Informational
    • Warnings

Typography

Profils Utilisateurs : Mise à jour du profil

User Story

As an authenticated User,
I want to be able to update my profile and my authentification credentials

Technical Tasks

  • Create a user profile page or screen where the user can edit their profile and authentication information.
  • Create the function APIs to allow the user to update their profile.
  • Input Validation: Ensure that user inputs are validated to prevent errors and incorrect data.
  • Unit Testing: Write unit tests for each developed feature to ensure their proper functioning.
  • Integration Testing: Perform integration testing to ensure that all parts of the system work together correctly.

Acceptance Criteria

  • The user must be able to successfully update at least one element of their profile, such as their name or profile picture.
  • Authentication Information Update: The user must be able to update their password or email address associated with their account successfully.
  • When the user attempts to update their information, the system must validate the inputs to ensure they are correct and complete.
  • The system must handle errors appropriately, providing clear and understandable error messages to the user in case of issues.

Authentification à l'application

User Story

As a non-authenticated User
I want to be able to Sign In
to access the application's features

Technical tasks

  • Create a form page sign-in with labels (email, password)
  • Validate data formats
  • Implement a function that will check if the user matches an existing user
  • Authentification using 'next-auth'
  • Tests?

Acceptation criterias

  • The user must be able to type in all inputs in the form
  • Validation must fail if (password || email) aren't valid
  • A message must appear if sign up is valid
  • Implement an error that will occur if an input isn't valid
  • The user has been redirected to his dashboard

Inscription à l'application

User Story

As a New User
I want to be able to Sign Up
to access the application's features

Dependencies

Technical tasks

  • Create a form page with labels (name, email, password, password validation)
  • Validate data formats
  • Implement a function that will save the user's data in DB
  • Authentification using 'next-auth'
  • Send confirmation link with an email
  • Tests?

Acceptation criterias

  • The user must be able to type in all inputs in the form
  • Validation must fail if (name || password || email || password validation) isn't valid
  • A message must appear if sign up is valid
  • Implement an error that will occur if an input isn't valid
  • A new user has been created in the DB
  • The user received a confirmation link by email

Profils Utilisateurs : Suppression du compte

User Story

As an authenticated User,
I want to be able to delete my profile

Dependencies

Technical Tasks:

  • UI Implementation: Create a user interface element, such as a button or confirmation dialog, that allows the user to initiate the profile deletion process.
  • Backend for Profile Deletion: Develop the necessary backend APIs or routes to handle the profile deletion request from the user.
  • Authentication and Authorization: Implement authentication and authorization checks to ensure that only the authenticated user who owns the profile can request its deletion.
  • Data Backup and Archiving: Establish a process to back up and archive user data before deletion to comply with data retention policies or legal requirements.
    -Confirmation Mechanism: Implement a confirmation mechanism, such as a double confirmation prompt or an email verification step, to prevent accidental profile deletions.
  • Error Handling: Handle errors that may occur during the deletion process, such as failed database operations or unexpected exceptions.
  • User Feedback: Provide clear feedback to the user after profile deletion, confirming the successful deletion or explaining any issues if deletion fails. ( mail )

Acceptance Criteria:

  • Initiate Profile Deletion: The authenticated user must be able to initiate the profile deletion process through the user interface.
  • Authentication and Authorization: Only the authenticated user who owns the profile should be allowed to request and complete the deletion.
  • Data Backup and Archiving: User data should be properly backed up and archived before the profile is deleted.
  • Confirmation Mechanism: Implement a confirmation step to ensure that the user intends to delete their profile, and confirm that it's irreversible.
  • Successful Deletion: The user's profile and associated data must be successfully deleted from the system upon completion of the deletion process.
  • Error Handling and Feedback: If an error occurs during the deletion process, provide clear error messages to the user and handle the error gracefully.

Authentification : Renouveler son mot passe

User Story

As a non-authenticated User with a forgotten password,
I want to be able to renew my password

Dependencies

Technical tasks

  • Create a form page with labels (email, new password, new password confirmed)
  • Validate data formats
  • Implement a function that will save the new user's password in DB
  • Authentification using 'next-auth'
  • Send confirmation with an email
  • Tests?

Acceptation criterias

  • The user must be able to type in all inputs in the form
  • Validation must fail if (new password || email) isn't valid
  • A message must appear if the operation succeeds
  • Implement an error that will occur if an input isn't valid
  • The password has been updated in the DB
  • The user received a confirmation by email

Authentification : Styles des formulaires

Formulaires concernés :

  • Formulaire de connexion (#2)
  • Formulaire d'inscription (#1)
  • Penser à rajouter le bouton "Pas de compte ? S'inscrire" sur le formulaire de connexion
  • Penser à rajouter le bouton "Déjà inscrit? Se connecter" sur le formulaire d'inscription

Événements : Voir ses invitations

User Story

As an authenticated User,
I want to be able to see my invitations to events

Technical Tasks:

  • UI Component: Design and create a user interface component, such as a invitations section, where authenticated users can view their event invitations.
  • Backend for Invitation Retrieval: Develop backend functionality to retrieve and provide a list of event invitations to the user interface.
  • Database Schema: Design or modify the database schema to support the storage of event invitations, including information about the event, the sender, and the invitation status (accepted, pending, declined).
  • Authentication and Authorization: Ensure that only authenticated users can access and view their event invitations.
  • Notification Mechanism: Implement a mechanism for notifying users about new event invitations.
  • Event Details: Allow users to access detailed information about each event when they click on an invitation, including event date, time, place, description, and sender information.
  • Accept or Decline Invitations: Provide options for users to accept or decline event invitations from within the interface.
  • Error Handling: Implement error handling to address issues with retrieving invitation data from the backend or displaying it on the frontend.

Acceptance Criteria:

  • Access Invitations: Authenticated users must have access to a section or page where they can view their event invitations.
  • List Display: The list of event invitations should be displayed clearly, showing relevant details about each invitation, including event information and sender details.
  • Authentication and Authorization: Ensure that only authenticated users can access and view their event invitations.
  • Notification of New Invitations: Users should be notified of new event invitations.
  • Event Details: Clicking on an invitation should allow users to view detailed information about the event, including date, time, place, description, and sender information.
  • Accept or Decline Invitations: Users should be able to accept or decline event invitations directly from the interface.
  • Data Accuracy: Invitation data should be displayed accurately and up-to-date.
  • Error Handling and Feedback: Handle any errors that may occur during invitation retrieval or display gracefully, providing clear error messages to the user if needed.

Composant : Bouton

Components

Créer un composant abstrait <Button> avec des contextes conditionnels :

  • Neutre (fond "transparent")
  • Action "normale"
  • Action positive
  • Action destructive

Invitations : Être notifi-é-e des réponses des participant-e-s

User Story

As an authenticated User who is an event organizer,
I want to be able to receive guests responses in notifications

Dependencies

Technical Tasks:

  • FCM Integration: If Firebase Cloud Messaging is not already integrated, do so to enable the sending of push notifications to event organizers.
  • Backend Trigger for Guest Responses: Implement a backend trigger to detect when a guest responds to an event invitation (Accept, Decline, Maybe).
  • Notification Payload: Craft the notification payload to include essential information about the guest's response, such as the guest's name and their response status (Accepted, Declined, Maybe).
  • Send Notification: Use FCM to send a push notification to the event organizer when a guest responds to an invitation.
  • Database Schema Update: Ensure that the database schema allows tracking of guests' responses and which organizers should receive notifications.
  • Authentication and Authorization: Implement checks to ensure that only authenticated users who are organizers of the specific event will receive these notifications.
  • Error Handling: Implement error handling for any issues that may arise during the notification process, such as failures in sending notifications through FCM.

Acceptance Criteria:

  • FCM Integration: Firebase Cloud Messaging should be correctly integrated into the application for sending push notifications to event organizers.
  • Notification Receipt: The event organizer should receive a push notification immediately after a guest responds to an invitation.
  • Notification Content: The notification should provide sufficient details about the guest's response, including the name of the guest and their response status (Accepted, Declined, Maybe).
  • Authentication and Authorization: Only the authenticated user who is the organizer of the specific event should receive notifications about guests' responses.
  • Error Handling and Feedback: Any errors during the notification sending process should be logged for future debugging, and the application should handle these gracefully.
  • Timeliness: The notifications should be sent and received promptly after a guest has responded to an event.

Invitations : Répondre à une invitation

User Story

As an authenticated User who received an invitation,
I want to be able to answer to an event invitation

Technical Tasks:

  • UI Component: Design and implement a user interface component to each event invitation the user receives.
  • Response Options: Provide options within the UI for the user to accept, decline,( or mark the invitation as "maybe.")
  • Backend for Invitation Response: Develop backend functionality to update the user's response to an invitation. This will include updating the invitation status in the database (Accepted, Declined, Maybe).
  • Database Schema Update: If not already implemented, add or modify fields in the database schema to store the user's response status to an event invitation.
  • Notification Mechanism: Implement a mechanism to notify event organizers when someone has responded to an invitation.
  • Authentication and Authorization: Implement checks to ensure that only the authenticated user who received the invitation can respond to it.
  • Error Handling: Implement error handling to manage any issues that may arise during the response process, such as database errors or invalid inputs.

Acceptance Criteria

  • Response Options Visibility: Authenticated users who have received an invitation should see options to accept, decline, or mark the invitation as "maybe."
    -Ease of Use: The process of responding to an invitation should be straightforward and require minimal steps.
  • Authentication and Authorization: The system should verify that the user attempting to respond to the invitation is authenticated and is the recipient of the specific invitation.
  • Invitation Status Update: Upon successful response, the status of the invitation should be updated in the database to reflect the user's choice (Accepted, Declined, Maybe).
  • Notification: the event organizer should be notified when someone has responded to an invitation.
  • Error Handling and Feedback: Clear and informative error messages should be displayed to the user if the response process fails for any reason.

Événements : Modification d'un événement

User Story

As an authenticated User who is event organizer,
I want to be able to update an event

Technical Tasks:

  • UI Component: Design and implement a user interface component, such as an "Edit Event" button and a corresponding form, where event organizers can update event details.
  • Backend for Event Update: Develop backend functionality to handle the updating of an event. This includes receiving updated event data from the front end, validating it, and then updating the database.
  • Authentication and Authorization: Implement checks to ensure that only authenticated users who are organizers of the specific event can update it.
  • Data Validation: Implement input validation to ensure that only valid data is accepted when updating an event.
  • Notification Mechanism: implement a mechanism to notify guests if significant details about the event have changed, such as date, time, or venue.
  • Error Handling: Implement error handling to manage any issues that may arise during the event update process, such as validation errors or database issues.

Acceptance Criteria:

  • Access to Edit Event: Only authenticated users who are organizers should have access to an "Edit Event" option for events they have organized.
  • Ease of Use: The process of updating an event should be straightforward, with a user-friendly interface that allows easy modification of all aspects of the event.
  • Authentication and Authorization: The system should verify that the user attempting to update the event is authenticated and is the organizer of the specific event.
  • Data Validation: All input fields should validate the data entered by the user, ensuring it meets specific criteria necessary for each field (e.g., date format, text length).
  • Event Update: Upon successful update, all details of the event should be updated in the database, and the user should receive confirmation that the event has been updated.
  • Notification: If significant details have changed, guests should be notified about the update.
  • Error Handling and Feedback: Clear error messages should be displayed to the user if the update process fails for any reason, such as invalid input or database errors.

Événements : Création d'événement

User Story

As an authenticated User,
I want to be able to create an event,
With date, hour, place, description, minimum participants, picture

Dependencies

Requires FourSquare Places API

Technical Tasks

  • UI Design and Form: Create a user interface form or page that allows authenticated users to input the details required for creating an event: date, hour, place, description, minimum participants, and optionaly upload a picture.
  • Backend API for Event Creation: Develop backend APIs to handle event creation requests, including validation and storage of event data in the database.
  • Data Validation: Implement validation to ensure that the data provided by the user for the event is valid and meets any specified criteria (e.g., valid date and time formats, minimum participants > 0).
  • Image Upload Handling: Set up a mechanism for users to upload event pictures, including validation of image format, size limits, and storage.
    -Authentication and Authorization: Ensure that only authenticated users with the appropriate permissions can create events.
  • Error Handling: Implement error handling to address issues such as failed database operations, validation errors, or image upload failures.

Acceptance Criteria

  • Access Event Creation: Authenticated users should have access to a page or form for creating events.
  • Input Fields: The event creation form should include fields for date, hour, place, description, minimum participants (with validation to ensure it's greater than 0), and an option to upload a picture.
  • Validation: The system should validate user inputs for events to ensure they meet the required criteria, such as valid date and time formats.
  • Image Upload: Users should be able to upload a picture for the event, and the system should validate the image format and size or use fourSquare.
  • Event Creation: After filling out the form and submitting it, the event should be created and stored in the system's database.
  • Authentication and Authorization: Only authenticated users with the necessary permissions should be able to access the event creation feature.
  • Data Accuracy: Event details, including date, hour, place, description, minimum participants, and the uploaded picture, should be stored accurately in the database.
  • Error Handling and Feedback: The system should provide clear feedback to the user in case of errors during the event creation process.

Événements : Invité-e-s aux événements

User Story

As an authenticated User who is a guest to an event,
I should not be able to update or cancel an event

Technical Tasks:

  • Role-based Authorization: Implement role-based authorization to ensure that only event organizers can update or cancel
    their own events. Deny these privileges to users with a "guest" role for this event.
  • UI Restrictions: Update the user interface to hide or disable any buttons, links, or forms that allow updating or canceling an event for users identified as guests.
  • Validation: Implement logic to reject any unauthorized attempts to update or cancel an event, even if the client-side interface is bypassed.
  • Error Handling: Implement proper error messages to inform the user that they are not authorized to perform the action if they somehow try to update or cancel an event.

Acceptance Criteria:

  • Role-based Restrictions: An authenticated user with the role of a "guest" should not see any options to update or cancel events in the user interface.
  • Validation: Any unauthorized attempts to update or cancel an event, even if the client-side interface is bypassed, should be rejected by the server.
  • Error Message: If an unauthorized user tries to update or cancel an event, a clear error message should be displayed, stating that they do not have permission to perform this action.
  • Data Integrity: No changes should be made to the event details unless performed by an authorized user (i.e., the event organizer).

Database : Create Fixtures

Motivation

Creating fake datas (aka Fixtures) will help giving context for developing the application.

Dependencies

Interface : Header component

  • Styles pour les boutons
    • Inscription
    • Connexion (neutral)
    • Déconnexion (destructive)
  • Affichage conditionnel en fonction du statut de connexion

Authentification : Se déconnecter

User Story

As an authenticated User,
I want to be able to Log Out

Technical tasks

  • Create a logout button
  • Implement a function that will disconnect the user
  • Authentification using 'next-auth'
  • Tests?

Acceptation criterias

  • The user must be able to see the button
  • A message must appear if disconnection failed
  • Stop the active session

Événements : Voir ses invité-e-s

User Story

As an authentified User who is event organizer,
I want to be able to see my guests to my event

Technical Tasks

  • UI Component: Design and implement a user interface component, such as a "Guest List" section, where event organizers can view the list of guests attending their event.
  • Backend for Guest Retrieval: Develop backend functionality to retrieve and provide a list of guests for the specific event to the user interface. Make sure to include relevant information like name, attendance status (going, maybe, declined).
  • Database Schema: Design or modify the database schema to support the storage of guest lists, including information about the guest, the event they are attending, and their attendance status.
  • Authentication and Authorization: Ensure that only the authenticated users who are organizers of the specific event can access and view their guest list.
  • Event-Specific Access: Implement logic to ensure the guest list displayed corresponds to the specific event selected by the organizer.
    (- Sorting and pagination for larger guest lists: Implement pagination for larger guest lists and provide options for sorting the list based on various criteria like name, attendance status ) optional
    -Error Handling: Implement error handling to address issues with retrieving guest data from the backend or displaying it on the frontend.

Acceptance Criteria:

  • Access to Guest List: Authenticated event organizers should have access to a "Guest List" section or page for their specific event.
  • List Display: The guest list should be displayed clearly, showing relevant details about each guest, including name, attendance status.
  • Authentication and Authorization: Only authenticated users who are organizers of the specific event should be able to access and view the guest list.
  • Event-Specific Display: The guest list should pertain to the specific event selected by the organizer. Switching to another event should update the guest list displayed.
    (-Pagination and Sorting: For larger guest lists, users should be able to navigate through multiple pages and sort the list based on various criteria.) optional
  • Data Accuracy: Guest data should be displayed accurately and should be up-to-date.
  • Error Handling and Feedback: Handle any errors gracefully that may occur during the guest list retrieval or display, providing clear error messages to the user if needed.

Invitations : Être notifi-é-e des changements d'un événement

User Story

As an authenthicated User who is a guest to an event,
I want to be able to receive notifations when an event is updated

Dependencies

Technical Tasks:

-FCM Integration: Integrate Firebase Cloud Messaging into the application for push notifications if it's not already set up.

  • Backend Trigger for Event Update: Implement a trigger on the backend to detect when an event has been updated. This can be part of the existing event update logic.
  • Notification Payload: Define the payload for the notification, which should include all necessary details about the event update.
  • Notification Sending: Once an event is updated, use FCM to send a push notification to all guests of the event.
  • Database Schema Update: Ensure the database schema supports tracking which users should receive notifications for which events.
  • Authentication and Authorization: Ensure that only authenticated users who are guests for the specific event will receive notifications.
  • Error Handling: Implement error handling to manage any issues that may arise during the notification process, such as failures in sending notifications through FCM.

Acceptance Criteria:

  • FCM Integration: Firebase Cloud Messaging should be integrated correctly into the application for push notifications.
  • Notification Receipt: Authenticated users who are guests of an updated event should receive a push notification about the update.
  • Notification Content: The push notification should provide sufficient details about what aspect of the event was updated (e.g., time, location, etc.).
  • Authentication and Authorization: Only authenticated users who are guests for the specific event should receive the update notifications.
  • Error Handling and Feedback: Any errors in the process of sending notifications, like FCM failures, should be logged for future debugging. The application should handle these errors gracefully.
  • Timeliness: Notifications should be received promptly after an event is updated.

Événements : Affichage événements

User Story

As an authenticated User,
I want to be able to see incoming events as a list

Technical Tasks:

  • UI Implementation: Create a user interface component to display incoming events as a list.
  • Backend Event Retrieval: Develop backend functionality to retrieve and provide a list of incoming events to the user interface.
  • Data Structure: Define the data structure for events, including attributes such as event name, date, time, location, and any additional relevant details.
  • Authentication and Authorization: Ensure that only authenticated users and only creator or guest can access and view the list of incoming events.
    (- Event Filtering and Sorting: Implement options for users to filter and sort the list of incoming events based on criteria such as date, location, or event type.) If it's ok for you??
  • Event Details: Create a mechanism for users to access detailed information about each event when they click on an event in the list. ( one page with detail of event )
  • Error Handling: Implement error handling in case there are issues with retrieving event data from the backend or displaying it on the frontend.

Acceptance Criteria

  • Access Event List: The authenticated user must be able to access a list of this incoming events.
  • List Display:The list of incoming events should be displayed clearly and informatively, showing event names and relevant details.
  • Authentication and Authorization: Ensure that only authenticated users and owner and guest can access and view the list of incoming events.
  • Filter and Sort: The user should be able to filter and sort the list of incoming events based on different criteria.
  • Event Details: Clicking on an event in the list should provide the user with detailed information about that specific event.
  • Data Accuracy: The list of incoming events should display accurate and up-to-date event information.
  • Error Handling: Handle any errors that may occur during event retrieval or display gracefully, providing clear error messages to the user if needed.

Profils Utilisateurs : Accès profil

User Story

As an authenticated User,
I want to be able to access my profile

Technical tasks

  • Create a button to access the profile
  • Create a profile page with (email, first name, last name, avatar, inscription date, gender, pronouns) editable
  • Create tabs (overview, my events, my participations)
  • Create a button to modify the password
  • Tests?

Acceptation criterias

  • The user must be able to see and click the profile link
  • The user has been redirected to his profile page after clicking the button
  • Profile page display correctly

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.